使用CSV模块和Python增加一列中的值

时间:2015-04-13 22:15:14

标签: python csv

我想要做的就是在我的csv文件中为每个值添加.001,而不是一列中的0(例如第7列)。

因此,不是35,而是将值更改为35.001。我需要这样做才能使我的ArcMap脚本正常工作,因为如果第一次读取整数,则当需要将其作为浮点读取时,该列将被指定为短整数。

截至目前,我有:

writer.writerow([f if f.strip() =='0' else f+.001 for f in row])

这会产生连接错误,但是还没有解决我需要处理的特定列。

非常感谢任何帮助。

谢谢。

1 个答案:

答案 0 :(得分:1)

最简单的方法就是改变原来的行,即

if row[7].strip() != '0' and '.' not in row[7]:
    row[7] = row[7] + '.001'
writer.writerow(row)
  • 连接错误是由于尝试将float添加到字符串引起的,您只需要在引号中包含额外的小数
  • if上的额外条件确保您不会意外地得到带有2个小数点的数字
  • 将35.0等形式的数字视为浮点数是非常标准的,即使它是一个整数 - 检查ArcMap是否遵循此约定,然后只需附加{{1}即可避免降低数字的准确性}