Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Python脚本从CSV文件中筛选_Python_Csv_Filter - Fatal编程技术网

如何使用Python脚本从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文件的三列中写入用户

我有一个包含三列的abx.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)