1 回答

TA貢獻(xiàn)1862條經(jīng)驗 獲得超7個贊
一個打開的文件句柄是一個流;只要還有更多未讀的行,您就可以閱讀,但是一旦您讀完所有行,一旦您就處于流的末尾,進(jìn)一步的讀取將不會產(chǎn)生任何結(jié)果。
不要嘗試多次循環(huán)內(nèi)部文件,而是將其讀入內(nèi)存,然后對內(nèi)存中的數(shù)據(jù)結(jié)構(gòu)循環(huán)多次……或者更好的是,在內(nèi)存中生成一個數(shù)據(jù)結(jié)構(gòu),讓您可以直接查看用戶是否存在于第二個文件中,因此您根本不必循環(huán)來搜索用戶。
import csv
data3 = []
with open("file2.csv", "r") as in_file2:
reader2 = csv.DictReader(in_file2)
# Create a set of users
users = {row2['UserName'] for row2 in reader2}
with open("file1.csv","r") as in_file1:
reader1 = csv.DictReader(in_file1)
for row1 in reader1:
if row1['UserName'] not in users:
data3.append(row1)
print(data3)
添加回答
舉報