你非常接近;目前,您将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
看起来好像没什么问题 - 什么是问题吗? – alfasin