如何使用Python脚本从CSV文件中筛选
我有一个包含三列的abx.csv文件。我想将具有如何使用Python脚本从CSV文件中筛选,python,csv,filter,Python,Csv,Filter,我有一个包含三列的abx.csv文件。我想将具有应用程序的数据过滤为中心,并将其写入相同的.csv文件中 User ID Name Application 001 Ajohns ABI 002 Fjerry Central 900 Xknight RFC 300 JollK QDI 078 Demik Central 我需要在同一个.csv文件的三列中写入用户
应用程序
的数据过滤为中心
,并将其写入相同的.csv文件中
User ID Name Application
001 Ajohns ABI
002 Fjerry Central
900 Xknight RFC
300 JollK QDI
078 Demik Central
我需要在同一个.csv文件的三列中写入
用户ID、名称、应用程序
(修改现有文件)您应该使用不同的输出文件名。即使您希望名称相同,也应该使用一些临时名称并最终重命名文件。否则,首先必须将文件读入内存
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)
您不需要将这些
与上下文管理器嵌套在单独的缩进级别上。相反,使用open('infle','r')、open('outfile','w')作为fin,fout:
。实际上,还需要注意的是,您需要在这里指定一些方言参数delimiter=“”
至少是这样。我以为OP可以自己做点什么,如果他复制并粘贴你的代码,那就行不通了,他也不知道为什么。您至少可以包含一条免责声明,说明他需要调整空间分隔文件的格式—指向csv
模块文档的指针不会有任何影响。作为奖励,这将OP引入阅读文档的习惯-双赢!这实际上不起作用,应该以open('infle','r')作为fin,open('outfile','w')作为fout:
这不会写列名
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)