1
我的MemoryError当我在我的HTC Desire运行SL4A下面的代码:Python的代码的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。帮助赞赏。 (代码是麻省理工学院开放式课程,CS 6.00 - 计算机科学和编程入门,问题集5,ps5_ghost.py的一部分)
这可能是sl4a中的一个错误吗?
[更新]: 我试过如下:
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 2012-03-01 04:27:51
@lllluuukke在尝试打印加载的字数之前,试试'inFile.close()'? (使用'with open()'为你关闭文件。) – gary 2012-03-01 04:37:43
尝试了'open()',仍然有'MemoryError' – lllluuukke 2012-03-01 05:14:59