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

使用csv模块在Python中添加尾随零,python,csv,Python,Csv,我的csv文件中的值为0,我希望将其替换为0.00。这样,我就可以运行需要浮点或双精度值的脚本(如果它首先读取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 r

我的csv文件中的值为0,我希望将其替换为0.00。这样,我就可以运行需要浮点或双精度值的脚本(如果它首先读取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])
但是,运行此操作后,仍然没有尾随的零。有人知道我在这种情况下做错了什么吗

任何帮助都会很好


谢谢。

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])
根据你的描述;这就是你的问题:

如果它首先读取0,则在 需要加倍

当从CSV文件转换字符串数据时,考虑使用<代码>浮点()/代码>转换函数强制从字符串转换为浮点;p>

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

f!=0
可能始终为真,因为
f
是字符串?@Julien我尝试过使用f!='“0”也一样,但没有成功。您可以显示一个输入数据的示例吗?@B在与“0”进行比较之前,您是否尝试过剥离f(请参见下面的答案)?在这里进行转换的问题是,如果文件(例如,在标题中)中有任何内容无法转换为浮点,您将得到一个ValueError。@DSM,没错。。。我只是编辑了我的答案,所以没有转换。让我知道这是否有效。@JulienSpronck,使用这段代码似乎也不会影响我文件的结果。这些尾随的零比我想象的要难@WillB好的,给我们看看你的数据,因为这对我来说很有用\@JuliensBronck,很遗憾,我不能显示数据,但我可以说大约有20列,第8列是最重要的更改,添加后面的零。