我有兩個文件一個包含由tab分隔的數據列表,第二個包含項目的id列表是一個字段。我想比較大文件(file1)中的每個第一個字段與最小文件(file2)中的所有行/項目id,然後如果比較的id不存在於第二個文件中,我想寫所有與第一個文件中的比較項目(這是由製表符分隔的行內容)。我嘗試了下面的代碼,但它有for循環的問題。第一個循環不增加,而第二個循環則循環所有第二個文件行。另外,我希望項目編號被寫入一次,這是If語句中的問題。比較兩個文本文件,以刪除較長的一個重複
for lines in alldata:
for lines1 in olddata:
old_data=lines1.split('\r\n')
dataId=old_data[0]
data=lines.split('\t')
photoid=data[0]
if photoid==dataId:
break
else:
#continue
#print('matching',lines)
#break
w=open(head+'......................../1.txt','a')
w.write(lines)
這是文件結構的一個示例:
15463774518 2014-10-28 08:12:31 2014-10-28 13:12:31
15628560471 2014-10-26 07:40:28 2014-10-26 12:40:28
15444098878 2014-10-26 04:49:19 2014-10-26 09:49:19
15437269197 2014-10-25 09:55:11 2014-10-25 15:55:11
小文件看起來像:
139747955
2417570005
2478707302
1808883457
211514265
這將是非常有用的看到您的文件內容的示例。另外,你可以給文件大小的指針嗎?它們是否足夠小以存儲在內存中? – 2014-11-02 06:49:37
這些文件具有不同的大小,因爲我使用不同大小的數據,對於大文件最小。大小是50KB,一些文件超過5MB。較小的文件最大爲20KB。 – Samah 2014-11-02 07:16:17