首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python代码在MemoryError中获取sl4a

Python代码在MemoryError中获取sl4a
EN

Stack Overflow用户
提问于 2012-03-01 03:06:30
回答 1查看 260关注 0票数 1

当我按照HTC的愿望在sl4a中运行以下代码时,我得到了sl4a:

代码语言:javascript
复制
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

在打印“从文件加载单词列表.”之后,它将

代码语言:javascript
复制
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尝试如下:

代码语言:javascript
复制
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

然后,神奇的是,我

代码语言:javascript
复制
Loading word list from file...
Oops...
  83667 words loaded.

其余的代码运行良好。有人知道是什么原因造成的吗?

EN

回答 1

Stack Overflow用户

发布于 2012-03-01 04:25:39

为这个问题(Memory error due to the huge input file size)提供的答案可能会有所帮助。以下是蒂姆对这一问题的回答:

代码语言:javascript
复制
wordlist = []
with open("words.txt") as inFile:
    for line in inFile:
        wordlist.append(line.strip())

此外,在调试方面,您可能希望删除wordlist.append(line.strip()),以确定该行是否导致内存错误,或者(更有可能)打开文件中的每一行。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9510072

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档