-1
我希望你很好。Python:從另一個txt文件中刪除一個txt文件的元素
我有兩個TXT文件:data.txt中和to_remove.txt
data.txt中有許多行,每行有幾個整數之間若有空隙。 data.txt中的一行如下所示:1001 1229 19910
to_remove.txt有許多行,每行有一個整數。 to_remove.txt中的一行如下所示:1229
我想寫一個新的txt文件,其中包含data.txt,而不包含to_remove.txt中的整數 我知道每行data.txt的第一個元素是沒有任何to_remove.txt的元素;所以我需要檢查每個行的所有非第一個元素與每個整數to_remove.txt
我寫信給代碼做到這一點,但我的代碼太慢了。 data.txt有超過一百萬行,而to_remove.txt有幾十行
如果你能建議更快的方法來做到這一點,這將是有用的。
這裏是我的代碼:
with open('new.txt', 'w') as new:
with open('data.txt') as data:
for line in data:
connections = []
currentline = line.split(" ")
for i in xrange(len(currentline)-2):
n = int(currentline[i+1])
connections.append(n)
with open('to_remove.txt') as to_remove:
for ID in to_remove:
ID = int(ID)
if ID in connections:
connections.remove(ID)
d = '%d '
connections.insert(0,int(currentline[0]))
for j in xrange(len(connections)-1):
d = d + '%d '
new.write((d % tuple(connections) + '\n'))
只是一個快速的評論:你不需要複製當前行,也不需要爲你正在處理的每一行再次讀取「to_remove」文件(在開始時將它存儲在內存中一次)。 –