Lire un fichier sur App Engine avec Python?
Est-il possible d'ouvrir un fichier sur GAE juste pour lire son contenu et d'obtenir la dernière modification de la balise?
- Je obtenir un IOError: [Errno 13] fichier n'est pas accessible:
Je sais que je ne peux pas supprimer ou mettre à jour mais je crois que la lecture devrait être possible
Quelqu'un a été confronté à un problème similaire?
os.stat(f,'r').st_mtim
- Essayez d'utiliser un répertoire relatif et assurez-vous qu'il est dans votre application, pas la racine
- j'ai déjà essayé quand j'ai un problème de chemin d'-je obtenir otehr Errno 2
- Un Googleurs répondu et m'a dit que vous ne pouvez pas lire les fichiers marqués comme étant statique. Mais c'est mon problème que je veux ouvrir mon JS/CSS fichiers. Je ll vous permettent de savoir si je trouve qch
- Merci de ne pas crosspost avec les groupes et les SOI - choisir un, à moins que vous n'obtenez pas de réponses.
- Vous pouvez lire les fichiers si vous ne les utilisez pas comme les fichiers statiques. Si vous les utilisez que des fichiers statiques, vous pouvez y accéder en utilisant le application_readable. Mais si vous n'avez pas probablement le problème est que le système de fichiers sensible à la casse.
Vous devez vous connecter pour publier un commentaire.
Vous avez probablement déclaré le fichier comme statique dans l'app.yaml. Les fichiers statiques ne sont pas disponibles à votre demande, si vous avez besoin de servir des fichiers statiques et de les lire comme des fichiers de l'application, vous aurez besoin d'inclure 2 copies de votre projet (de préférence en utilisant des liens symboliques, de sorte que vous n'avez pas à conserver une copie.)
Mise À Jour Novembre 2014:
Comme suggéré dans les commentaires, vous pouvez maintenant le faire avec le application_readable drapeau:
Voir https://cloud.google.com/appengine/docs/python/config/appconfig#Static_Directory_Handlers
Vous pouvez lire les fichiers, mais ils sont sur Goooogle du loufoque GAE système de fichiers, donc vous devez utiliser un chemin relatif. Je viens de fouettée en place rapidement une application avec un main.py fichier et test.txt dans le même dossier. N'oubliez pas le " e " sur st_mtime.
+1 pour la nouvelle "application_readable: true" caractéristique. Avant d'utiliser cette nouvelle fonctionnalité, je n'ai couru dans un problème avec GAEs' "loufoque" système de fichiers lors de l'obtention de la PNL Montylingua à l'importation.
Question: Monty utilise open(fichier,'rb') et un pointeur de fichier à file_ptr.read() en octets de fichiers statiques. Ma mise en œuvre travaillé sur mon local, le système windows, mais a échoué lors de la déploiement de!
Le correctif: Préciser les attendus d'octets à lire file_ptr.lire(4) #4 octets binaires
Semble être quelque chose en rapport avec le 64 bits GAE serveur vouloir lire plus (8 par défaut) octets. De toute façon, a pris un certain temps pour trouver le problème. Montylingua charge maintenant.
J'ai trouvé étrange, mais la solution de travail 🙂 Jinja 🙂
De servir les fichiers statiques directement parfois devenir un casse-tête avec GAE. Possible compromis de performance vous permettent de déplacer la balade de l'avant avec Jinja
Avez-vous l'obtenir 😉 j'ai testé et Ça a fonctionné.
Avec webapp2, en supposant que vous avez
pages/index.html
à le même chemin quemain.py
: