您已经非常接近了;目前您正在将row[2]
与整数0
进行比较,应该使用字符串"0"
进行比较。当您从文件中读取数据时,它是一个字符串而不是一个整数,这就是为什么您的整数检查目前失败的原因:
row[2]!="0":
此外,您可以使用 with
关键字,使当前代码更符合Python语言风格,从而减少代码中的行数,并且可以省略 .close
语句:
import csv
with open('first.csv', 'rb') as inp, open('first_edit.csv', 'wb') as out:
writer = csv.writer(out)
for row in csv.reader(inp):
if row[2] != "0":
writer.writerow(row)
请注意,input
是Python内置变量,因此我使用了另一个变量名。
编辑:你的csv文件的行中的值是逗号和空格分隔的;在普通的csv文件中,它们只会用逗号分隔,并且对"0"
进行检查就可以了,所以您可以使用strip(row[2]) != 0
,或者检查" 0"
。
更好的解决方案是纠正csv格式,但如果您要坚持使用当前的格式,以下内容将适用于您提供的csv文件格式:
$ cat test.py
import csv
with open('first.csv', 'rb') as inp, open('first_edit.csv', 'wb') as out:
writer = csv.writer(out)
for row in csv.reader(inp):
if row[2] != " 0":
writer.writerow(row)
$ cat first.csv
6.5, 5.4, 0, 320
6.5, 5.4, 1, 320
$ python test.py
$ cat first_edit.csv
6.5, 5.4, 1, 320