Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用Django从.py文件读取媒体文件?_Python_Django_File Io - Fatal编程技术网

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()