15

我有包含三列的 abx.csv 文件。我想过滤具有Applicationas的数据并将其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三列(修改现有文件)

4

2 回答 2

17
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)
于 2012-05-10T08:54:16.707 回答
15

您应该使用不同的输出文件名。即使您希望名称相同,您也应该使用一些临时名称,最后重命名文件。否则你必须首先将文件读入内存

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)
于 2012-05-10T08:55:49.777 回答