でMemoryErrorを取得します。それは印刷した後Pythonコードは、私は私のHTCの欲望にsl4aで次のコードを実行するとき、私はMemoryErrorを得たsl4a
def load_words():
print "Loading word list from file..."
inFile = open(words.txt, 'r', 0)
wordlist = []
for line in inFile:
wordlist.append(line.strip())
print " ", len(wordlist), "words loaded.\n"
return wordlist
「をファイルから読み込んで単語リストを...」、それは
を与えますTraceback (most recent call last):
File "words.txt", line 92, in <module>
wordlist = load_words()
File "words.txt", line 29, in load_words
for line in inFile:
MemoryError
ところで、 "words.txt"というファイルには83667語の単語があり、サイズは633.6 KBです。ヘルプは高く評価しました。 (このコードはMIT OpenCourseWareの一部で、CS 6.00 - コンピュータサイエンスとプログラミング入門、問題セット5、ps5_ghost.py)
これはおそらくsl4aのバグですか?私は次のことを試してみました :
[UPDATE]
def load_words():
print "Loading word list from file..."
inFile = open(words.txt, 'r', 0)
wordlist = []
try:
for line in inFile:
wordlist.append(line.strip())
except MemoryError:
print 'Oops...'
print " ", len(wordlist), "words loaded.\n"
return wordlist
その後は、魔法のように、私は
Loading word list from file...
Oops...
83667 words loaded.
そして残りのコードがうまく働いなりました。これを引き起こした原因は誰にも分かりますか?
ありがとうございました。私は実際に 'wordlist.append(line.strip())の前に' print line'を置こうとしましたが、83667すべての単語が出力されました。また、私の入力ファイルは1.2GBのモンスターよりもかなり小さいです... – lllluuukke
@lllluuukke読み込まれた単語の数を印刷する前に 'inFile.close()'を試してみてください。 ( 'open()でファイルを閉じます。) – gary
' open() 'と試しても、' MemoryError' – lllluuukke