我已经构建了一个脚本来读取excel文件并将内容保存到我的数据库中。(注意:文件和脚本位于不同的目录中)。然而,当我试图从我的views.py中执行脚本作为简单的导入时,django抛出一个错误,它无法找到文件或目录:
[Errno 2] No such file or directory: '\\media\\documents\\GDRAT.xls\\'
我在脚本中的实际代码如下所示:
source_wb = xlrd.open_workbook('media/documents/GDRAT.xls')
我的脚本在父目录中。从命令行执行脚本工作得很好,所以我很难理解为什么django会以不同的方式读取它。
我的views.py
函数看起来像这样(注意:我返回到父目录来查找脚本-这似乎工作得很好,只是找不到我需要读入的excel文件):
def UpdateGDRAT(request):
os.chdir('..')
import GDRAT
return render_to_response('success.html')
任何指导都是非常感谢的!
发布于 2014-07-26 22:12:12
这对我很管用
os.path.join(os.path.dirname(os.path.dirname(__file__)),'media/documents/GDRAT.xls')
发布于 2014-01-27 07:13:10
当你从终端运行脚本时,你有一个当前的工作目录,任何相对路径都是从这个目录开始的,当从另一个代码调用相同的脚本时,你的工作目录可能是不同的。
如果您知道文件相对于脚本的位置,我建议您使用动态构造的绝对路径,如下所示:
import os
GDRAT_abs_path = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'media/documents/GDRAT.xls')
__file__给你当前文件的路径,也就是脚本的路径(假设这一行放在脚本中);
有关目录名称,请参阅http://docs.python.org/2/library/os.path.html#os.path.dirname
有关realpath,请参阅http://docs.python.org/2/library/os.path.html#os.path.realpath
发布于 2020-01-07 09:34:25
settings.py
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
from django.conf import settings
import os
base_dir =settings.MEDIA_ROOT
my_file = os.path.join(base_dir, str(GDRAT.xls))
https://stackoverflow.com/questions/21370298
复制相似问题