2

我的项目结构看起来像

flask-appengine-template/
                        docs/
                        licenses/
                        src/
                            application/
                                        static/
                                        templates/
                                        models.py
                                        settings.py
                                        urls.py
                                        views.py
                                        english.txt
                        libs/
                            bs4/
                         app.yaml
                         src.py

在我的 中views.py,我有一个读取文件的函数english.txt

      for words in open('english.txt', 'r').readlines():
            stopwords.append(words.strip())

当我运行它时local environment,我在日志中看到错误为

(<type 'exceptions.IOError'>, IOError(13, 'file not accessible'), <traceback object at 0x10c457560>)

如何在 Google App Engine 中读取此文件?

4

2 回答 2

6

如果english.txt 只是一个单词列表,我建议将单词列表转换为python 列表,这样你就可以导入它。

如果english.txt 有更复杂的数据,请将其移至应用程序可用的bigtable 或其他数据库。

与标准 VPS 相比,AppEngine 是一个非常残缺的环境,我倾向于避免在底层操作系统上运行的功能,例如open().

于 2013-02-03T12:04:21.907 回答
3

您需要使用 os.path 来获得对文件路径的正确引用,类似于:

def read_words():
    import os.path
    folder = os.path.dirname(os.path.realpath(__file__))
    file_path = os.path.join(folder, 'english.txt')
    for words in open(file_path, 'r').readlines():
        stopwords.append(words.strip())

希望有帮助!

于 2013-02-03T18:51:36.073 回答