如何在应用引擎补丁上打开文件?

0 投票
3 回答
2259 浏览
提问于 2025-04-15 12:39

我试着在视图中读取一个文件,代码是这样的:

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文件里是怎么写的)?

撰写回答