GoogleAppEngine:如何使用python读取文本文件?

GoogleAppEngine:如何使用python读取文本文件?,python,file,google-app-engine,Python,File,Google App Engine,我的项目结构看起来像 flask-appengine-template/ docs/ licenses/ src/ application/ static/

我的项目结构看起来像

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())
当我在
本地环境
上运行此操作时,我在日志中看到的错误如下

(<type 'exceptions.IOError'>, IOError(13, 'file not accessible'), <traceback object at 0x10c457560>)
(,IOError(13,'文件不可访问'),)

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

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

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


与标准VPS相比,AppEngine是一个非常脆弱的环境,我倾向于避免在底层操作系统上运行的函数,如
open()

您需要使用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())

希望有帮助

这个问题是否相关
open('english.txt','r')
->
open('templates/english.txt','r')
?尝试从应用程序的根目录开始:
open('src/application/english.txt','r')
将数据从english.txt转换为english.py(包含单词列表)并导入。我尝试了您建议的方法,效果很好,谢谢@Paulo@Paulo残废的,您是指性能方面还是w.r.t.api支持?当涉及到读取文件系统时,像
jinja
这样的模板库不是一直都在这样做吗?这个答案非常古老,有些过时;与VPS相比,GAE以前的“平台即服务”服务有几个局限性(例如,只有纯Python库、有限的I/O等)。现在,我认为它们允许一种混合的PaaS/IaaS方法,您可以从GCP连接网络卷,并在GAE中执行标准I/O。