当我按照HTC的愿望在sl4a中运行以下代码时,我得到了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。帮助感激。(代码是麻省理工学院OpenCourseWare的一部分,CS 6.00 -计算机科学和编程入门,问题集5,ps5_ghost.py)
这可能是sl4a中的一个bug吗?
UPDATE I尝试如下:
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.其余的代码运行良好。有人知道是什么原因造成的吗?
发布于 2012-03-01 04:25:39
为这个问题(Memory error due to the huge input file size)提供的答案可能会有所帮助。以下是蒂姆对这一问题的回答:
wordlist = []
with open("words.txt") as inFile:
for line in inFile:
wordlist.append(line.strip())此外,在调试方面,您可能希望删除wordlist.append(line.strip()),以确定该行是否导致内存错误,或者(更有可能)打开文件中的每一行。
https://stackoverflow.com/questions/9510072
复制相似问题