我想比较两个csv文件并通过它们进行搜索以查找特定值。下面的例子。Python:比较两个CSV列表
文件中的一个
名字,姓氏,年龄
约翰,能源部,45
简,DOE,34
罗伯特,重击,27
鲍勃,White,56
卡里,伍兹,28
文件中的两个
姓
罗伯特
简
脚本应该使用文件中的两个的名字列在文件中搜索一个人的名字列并返回年龄
结果 罗伯特,27 简,34
我的代码只输出罗伯特,27不继续寻找简的第二排。我试着用While循环没有成功。任何援助将非常感谢!谢谢!
仅供参考,我将通过超过10k行的文件搜索50多个项目。
下面的代码:
import csv
FileOne = open('/FileOne')
FileOneReader = csv.DictReader(FileOne)
FileTwo = open('/FileTwo')
FileTwoReader = csv.DictReader(FileTwo)
for row in FileTwoReader:
for row2 in FileOneReader:
if row['FirstName'].lower() in row2['FirstName'].lower():
print 'Name:' + row['FirstName'] + ' Age: ' + row2['Age'].lower()
究其原因,第二个是不是印刷是因为你正在阅读在第一次迭代整个'csv.DictReader'对象。你的一个文件被第二次迭代耗尽。您应该将数据保存在列表中并进行检查。 – Abdou
该CSV文件是可疑的。请参阅[CSV格式的定义](https://tools.ietf.org/html/rfc4180#section-2)。如果row ['FirstName']。lower()== row2 ['FirstName']],那么只需改变这个'如果row ['FirstName']。row2 ['FirstName']。 .lower():在清理完数据之后。 –