我的项目结构看起来像
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 中读取此文件?
如果英语.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())
希望对您有所帮助!