非常に大きなテキストファイル(500MB +)で作業していますが、コードは完璧に出力されていますが、重複しています。私が探しているのは、ファイルに書き込む前に出力が存在するかどうかを調べることです。私はそれがifステートメントの単なる1行だと確信していますが、私はPythonをよく知らないし、構文を理解できません。どんな助けでも大歓迎です。Pythonで書く前にtxtファイル内の一致を確認する
authorList = ['Shakes.','Scott']
with open('/Users/Adam/Desktop/Poetrylist.txt','w') as output_file:
with open('/Users/Adam/Desktop/2e.txt','r') as open_file:
the_whole_file = open_file.read()
for x in authorList:
start_position = 0
while True:
start_position = the_whole_file.find('<A>'+x+'</A>', start_position)
if start_position < 0:
break
end_position = the_whole_file.find('</W>', start_position)
output_file.write(the_whole_file[start_position:end_position+4])
output_file.write("\n")
start_position = end_position + 4
+1これまでのところ最良の答えです。しかし 'set 'を使うことは' dict'よりも良いでしょう。 –
@stevehaこの記事(http://stackoverflow.com/questions/6790915/searching-txt-files-in-python)でGradが書いたことによると、そのファイルは非常に大きく、 "the_whole_file = open_file.read() ''なぜ彼は彼が彼の質問で提示した上記のコードが完全に働いていると考えているのか分かりません。 – eyquem