我想比較兩個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():在清理完數據之後。 –