我的abx.csv文件有三列。我想过滤Application
为Central
的数据并将其写入相同的.csv文件
User ID Name Application
001 Ajohns ABI
002 Fjerry Central
900 Xknight RFC
300 JollK QDI
078 Demik Central
我需要在同一个.csv文件的三列中编写User ID,Name,Apllication
(修改现有文件)
答案 0 :(得分:13)
import csv
reader = csv.reader(open(r"abx.csv"),delimiter=' ')
filtered = filter(lambda p: 'Central' == p[2], reader)
csv.writer(open(r"abx.csv",'w'),delimiter=' ').writerows(filtered)
答案 1 :(得分:10)
您应该使用不同的输出文件名。即使您希望名称相同,也应使用一些临时名称,最后重命名文件。否则你必须先将文件读入内存
import csv
with open('infile','r'), open ('outfile','w') as fin, fout:
writer = csv.writer(fout, delimiter=' ')
for row in csv.reader(fin, delimiter=' '):
if row[2] == 'Central':
writer.writerow(row)