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

时间:2009-07-03 03:54:38

标签: python django google-app-engine

我尝试在这样的视图中读取文件:

def foo(request):
    f = open('foo.txt', 'r')
    data = f.read()
    return HttpResponse(data)

我试图将foo.txt放在项目的几乎每个文件夹中,但它仍然会返回

  

[Errno 2]没有这样的文件或目录:   'foo.txt的'

那么有人知道如何在app引擎补丁中打开文件吗?我应该在哪里放置我想要打开的文件?非常感谢。 我正在使用app-engine-patch 1.1beta1

3 个答案:

答案 0 :(得分:2)

在App Engine,补丁或其他方面,您应该能够打开(只读)随应用程序源上传的任何文件。 'foo.txt'与py文件位于同一目录中吗?它是否上传(你的app.yaml说什么?)?

答案 1 :(得分:1)

将'./'放在文件路径前:

f = open('./foo.txt')

如果不这样做,它仍然可以在App Engine Launcher 1.3.4中运行,这可能会令人困惑,但是一旦你上传它,你就会收到错误。

此外,您似乎不应该提及要在app.yaml中访问的文件(或其目录)。我在这个应用程序中包含了css,js和html。

答案 2 :(得分:0)

你应该尝试f = open('。/ foo.txt','r')