如何在应用引擎补丁上打开文件?
我试着在视图中读取一个文件,代码是这样的:
def foo(request):
f = open('foo.txt', 'r')
data = f.read()
return HttpResponse(data)
我把foo.txt放在项目里的几乎每个文件夹里,但还是出现了这个错误:
[Errno 2] 没有这样的文件或目录: 'foo.txt'
所以有没有人知道在app engine patch中怎么打开一个文件?我应该把想要打开的文件放在哪里呢?非常感谢!我使用的是app-engine-patch 1.1beta1。
3 个回答
0
你可以试试用这个命令:f = open('./foo.txt', 'r')
1
在你的文件路径前面加上'./':
f = open('./foo.txt')
如果不加,这在App Engine Launcher 1.3.4里还是能运行,这可能会让人困惑,但一旦你上传了,就会出现错误。
另外,似乎在app.yaml里不应该提到你想要访问的文件(或它的目录)。我就是这样把css、js和html包含到我的应用里的。
2
在App Engine上,不管是打补丁还是其他方式,你应该能够打开任何和你应用程序源代码一起上传的文件(只能读取)。'foo.txt'文件是在和.py文件同一个文件夹里吗?它有没有被上传(你的app.yaml文件里是怎么写的)?