到目前为止,这是我的代码:
with open('in.csv', 'rb') as inp, open('out.csv', 'wb') as out:
writer = csv.writer(out)
for row in csv.reader(inp):
try:
floatRow= float(row[3].strip())
if floatRow > 180.0:
row[3] = floatRow - 180.0
writer.writerow(row)
else:
if floatRow < 180.0:
row[3] = floatRow + 180.0
else:
writer.writerow(row)
except ValueError,e:
writer.writerow(row)
问题出现在if
/ else
声明中。 &#39;如果&#39;语句有效(如180的减法),而else
语句不起作用。脚本运行正常,但由于某种原因,它将消除值低于180的所有记录。
我哪里出错了,我该如何解决?
答案 0 :(得分:3)
您没有为writer.writerow(row)
块写入行(if
缺失)
if floatRow < 180.0:
row[3] = floatRow + 180.0
writer.writerow(row) # This is missing
else:
writer.writerow(row)
注意 :由于您正在使用if-else主要更改row [3]列的数据,我建议您通过移动{{1来简化脚本语句输出并仅保留在writer.writerow
- if
块
elif