これは、私がPythonで行を削除するために使用しているコードなので、 "cleanse"という名前です。私は数千語の単語とその品詞のリストを持っています:Python:ラインオーバーライグの問題?
NN by
PP at
PP at
...これは問題です。何らかの理由で(私が理解することができず、数時間試している)、私が単語の入力を通過するために使用しているプログラムは、重複を取り除いていないので、次にできることは、前者!ファイルを順番に調べ、実行時に重複を削除してください。しかし、私が行うたびに、このコードはリストの最後の行を取り、を複製します。何十万回も繰り返します。
考えてください。 :
EDIT:cleanseArchive()はwords.txtというファイルを通り、重複する行を取り除いて削除します.Pythonは行を削除することができないので、私は持っていません私は基本的には重複していないデータをリスト(saveList)に保存し、そのリストから各ファイルを新しいファイルに書き込む(古いものを削除する)ことに変わりました。それだけで何千回もの際に元のリストの何千もの最終的なオブジェクトを繰り返し、言っ
はEDIT2:これは私がこれまでのところ、回答からの提案を取ってきたものである:
def cleanseArchive():
f = open("words.txt", "r+")
given_line = f.readlines()
f.seek(0)
saveList = set(given_line)
f.close()
os.remove("words.txt")
f = open("words.txt", "a")
f.write(saveList)
しかし、ATMは、私にこのエラーを与えている:
Traceback (most recent call last):
File "C:\Python33\Scripts\AI\prototypal_intelligence.py", line 154, in <module>
initialize()
File "C:\Python33\Scripts\AI\prototypal_intelligence.py", line 100, in initialize
cleanseArchive()
File "C:\Python33\Scripts\AI\prototypal_intelligence.py", line 29, in cleanseArchive
f.write(saveList)
TypeError: must be str, not set
問題は何ですか? cleanseArchiveは何をすべきですか?入力と出力の例を教えてください。 –
リストから 'set'を作成するのはなぜですか?(定義によって重複はありません)、' set'の内容をファイルに書きますか? – Matthias
もう1つ: 'if line [3:]!= n'の' line [3:] 'と' n'はどうして同じになるのですか? – Matthias