15

3 つの列を持つ 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 ファイルの 3 列に書き込む必要があり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 に答える