Python从输入文本fi搜索csv文件

2024-06-16 10:01:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我是python的新手,我正在为这段代码而奋斗。有2个文件,第一个文件是包含电子邮件地址的文本文件(每行一个),第二个文件是5-6列的csv文件。脚本应该从file1获取搜索输入并在文件2中搜索,输出应该存储在另一个csv文件中(仅前3列),见下面的示例。我还复制了我正在写的剧本。如果有更好/更有效的脚本,请告诉我。谢谢,谢谢你的帮助。在

File1 (output.txt)
rrr@company.com
eee@company.com
ccc@company.com

File2 (final.csv)
Sam,Smith,sss@company.com,admin
Eric,Smith,eee@company.com,finance
Joe,Doe,jjj@company.com,telcom
Chase,Li,ccc@company.com,IT

output (out_name_email.csv)
Eric,Smith,eee@company.com
Chase,Li,ccc@company.com

这是剧本

^{pr2}$

Tags: 文件csv代码脚本comoutputlicompany
1条回答
网友
1楼 · 发布于 2024-06-16 10:01:56

将电子邮件加载到set中进行O(1)查找:

with open(inputfile) as fin:
    emails = set(line.strip() for line in fin)

然后在这些行上循环一次,并检查它是否存在于emails中-无需为每一行遍历每个可能的匹配项:

^{pr2}$

如果你不做其他事情,那么你可以做到:

writer.writerows(row for row in reader if row[1] in emails)

注意,在原始代码中,您没有使用csv.reader对象reader-你在fd上循环,你似乎有一些命名问题,namesline和{}。。。在

相关问题 更多 >