2010-04-21 7 views
2

Je peux lire le fichier a.txt comme ceci:Comment lire un fichier multimédia depuis un fichier .py en utilisant Django?

text = open('a.txt', 'rb').read() 

Mais quand je mets le a.txt dans le dossier media, cela ne fonctionne pas:

text = open('/media/a.txt', 'rb').read() 

Je reçois l'erreur suivante:

IOError at/
[Errno 13] file not accessible: '/media/a.txt' 

Comment puis-je lire le fichier à partir du répertoire media?

+1

problème de chemin relatif? essayez 'text = open ('media/a.txt', 'rb'). read()' –

Répondre

2

L'initiale / signifie qu'il s'agit d'un chemin absolu, accessible depuis la racine du système de fichiers. Si vous souhaitez lire un fichier à partir du chemin d'accès du projet, vous devrez alors démarrer le nom de fichier avec le chemin du projet ou utiliser __file__ avec les fonctions de os.path pour créer un chemin relatif ou absolu approprié.

7

Pour être plus générique (et assurez-vous que vous utilisez le dossier multimédia), vous pouvez le modifier à:

import os 
from django.conf import settings 
text = open(os.path.join(settings.MEDIA_ROOT, 'a.txt'), 'rb').read() 
-1

Vous ne pouvez pas lire les fichiers statiques à partir de votre code d'application dans Google App Engine. Les fichiers marqués comme statiques sont servis à partir de différents serveurs et non inclus avec votre application. Si votre application a besoin de les lire et qu'elle n'a pas besoin d'être diffusée directement aux utilisateurs, ne les marquez pas de manière statique. Si vous devez à la fois les servir directement aux utilisateurs et les lire en code python, vous devez inclure 2 copies dans votre projet, dont l'une est marquée comme statique et l'autre non.

+4

Je ne pense pas que le PO ait parlé de GAE. – vezult

Questions connexes