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。