使用csv模块在Python中添加尾随零

时间:2015-04-07 20:34:54

标签: python csv

我的csv文件中的值为0,我想用0.00替换。通过这种方式,我可以运行需要float或double值的脚本(如果它首先读取0,那么当需要加倍时,它将使整个列成为整数。)

到目前为止,这是我的代码:

with open("in_file.csv","rb") as infile,open("out_file.csv","wb") as outfile:
    reader = csv.reader(infile)
    writer = csv.writer(outfile)
    for row in reader:
        writer.writerow([f if f !=0  else '{:0.2f}'.format(0)  for f in row])

然而,在此运行之后,仍然没有尾随零。在这种情况下,有谁会知道我做错了什么?

任何帮助都会很棒。

谢谢。

2 个答案:

答案 0 :(得分:0)

f应该是代码中的字符串。我怀疑你有空格。试试这个:

with open("in_file.csv","rb") as infile,open("out_file.csv","wb") as outfile:
    reader = csv.reader(infile)
    writer = csv.writer(outfile)
    for row in reader:
        writer.writerow([f if f.strip() != '0'  else '{:0.2f}'.format(0)  for f in row])

答案 1 :(得分:0)

根据你的描述; 这个是你的问题:

  

如果它首先读取0,它将使整个列成为整数   需要加倍

从CSV文件转换字符串数据时,请考虑使用float()转换函数强制从字符串转换为浮点数;

In [1]: float('0')
Out[1]: 0