2009-07-03 10 views
0

J'ai essayé de lire un fichier dans une vue comme celui-ci:Comment ouvrir un fichier sur un correctif de moteur d'application?

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

J'ai essayé de placer le foo.txt dans presque tous les dossiers dans le projet, mais il retourne toujours

[Errno 2] Aucun fichier ou répertoire: « foo.txt »

ne Alors quelqu'un sait comment ouvrir un fichier dans le patch moteur app? Où dois-je placer les fichiers que je souhaite ouvrir? Merci beaucoup. J'utilise app-engine-patch 1.1beta1

Répondre

2

Dans App Engine, patch ou autrement, vous devriez être en mesure d'ouvrir (en lecture seule) tout fichier qui est téléchargé avec les sources de votre application. Est-ce que 'foo.txt' se trouve dans le même répertoire que le fichier py? Est-ce qu'il est téléchargé (que dit votre app.yaml?)?

+0

J'ai essayé de mettre le txt dans le même répertoire que le fichier py mais cela n'a pas fonctionné. Je pense que c'est l'app-engine-patch qui a fait quelque chose lors de l'ouverture du fichier, car il a beaucoup de choses de moteur d'application dans le trackback. – jagttt

+0

Cela ne signifie pas que app-engine-patch a quelque chose en commun - c'est la pile d'appels qui mène à cette erreur. Collez votre tracebask quelque part, nous essaierons d'aider (par exemple sur http://paste.pocoo.org/). – zgoda

+0

Collage de la trace dans la question serait mieux. –

0

Vous devriez essayer f = open ('./ foo.txt', 'r')

1

Put './' devant votre chemin de fichier:

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

Si vous n » Cela fonctionnera encore dans App Engine Launcher 1.3.4, ce qui pourrait prêter à confusion, mais une fois que vous l'aurez téléchargé, vous obtiendrez une erreur.

Aussi, il semble que vous ne devriez pas mentionner le fichier (ou son répertoire) auquel vous voulez accéder dans app.yaml. J'inclus css, js et html dans mon application de cette façon.

Questions connexes