這裏是我剛剛測試的東西,你可能不需要pprint,我只是想用於清除輸出。
test.csv
10000,Account Name,0,0,"3,711.32",0,0,"18,629.64","22,340.96",COD,"20,000.00",Some string,Some string 2
10000,Account Name,0,0,"3,711.32",0,0,"18,629.64","22,340.96",COD,"20,000.00",Some string,Some string 2
代碼,請使用CSV閱讀器,並通過每個項目parseNum函數來檢查有效數字與否。
from pprint import pprint
import csv
def parseNum(x):
xx=x.replace(",","")
if not xx.replace(".","").isdigit(): return x
return "." in xx and float(xx) or int(xx)
x=[map(parseNum,line) for line in csv.reader(open("test.csv"))]
pprint(x)
輸出
[[10000,
'Account Name',
0,
0,
3711.3200000000002,
0,
0,
18629.639999999999,
22340.959999999999,
'COD',
20000.0,
'Some string',
'Some string 2'],
[10000,
'Account Name',
0,
0,
3711.3200000000002,
0,
0,
18629.639999999999,
22340.959999999999,
'COD',
20000.0,
'Some string',
'Some string 2']]
注意:如果你需要浮點數精度好,與Decimal
我不能在其他職位發表評論,但如果更換所有的逗號,你也摧毀所有的CSV逗號,它不會再是CSV文件了。 – 2009-12-08 03:53:12
絕對要走的路。在標準庫中使用csv模塊。 – thebat 2009-12-08 04:03:18
@Dumb Guy,這就是爲什麼我想刪除引號內的逗號,而不是其他地方。謝謝你的提示! – Francis 2009-12-08 04:07:25