Python 如何使用Django从.py文件读取媒体文件?
我可以像这样读取Python 如何使用Django从.py文件读取媒体文件?,python,django,file-io,Python,Django,File Io,我可以像这样读取a.txt文件: text = open('a.txt', 'rb').read() 但是当我将a.txt放入media文件夹时,这不起作用: text = open('/media/a.txt', 'rb').read() 我得到以下错误: IOError at / [Errno 13] file not accessible: '/media/a.txt' 如何从媒体目录中读取文件?初始的/表示它是一个绝对路径,从文件系统的根目录访问。如果要从项目路径读取文件,则需要以
a.txt
文件:
text = open('a.txt', 'rb').read()
但是当我将a.txt
放入media
文件夹时,这不起作用:
text = open('/media/a.txt', 'rb').read()
我得到以下错误:
IOError at /
[Errno 13] file not accessible: '/media/a.txt'
如何从
媒体
目录中读取文件?初始的/
表示它是一个绝对路径,从文件系统的根目录访问。如果要从项目路径读取文件,则需要以项目路径开始文件名,或者使用\uuuu file\uuuu
以及os.path
中的函数来创建适当的相对或绝对路径。要更通用(并确保使用媒体文件夹),可以将其更改为:
import os
from django.conf import settings
text = open(os.path.join(settings.MEDIA_ROOT, 'a.txt'), 'rb').read()
您无法从Google App Engine中的应用程序代码中读取静态文件。标记为静态的文件来自不同的服务器,不包含在应用程序中。如果您的应用程序需要读取它们,并且它们不需要直接提供给用户,那么不要将它们标记为静态。如果您需要将它们直接提供给用户并在python代码中读取它们,则需要在项目中包含两个副本,其中一个标记为静态,另一个标记为非静态。我认为OP没有提到GAE.relative path问题?尝试
text=open('media/a.txt','rb')。read()