首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >django [Errno 2]没有这样的文件或目录:

django [Errno 2]没有这样的文件或目录:
EN

Stack Overflow用户
提问于 2014-01-27 06:48:03
回答 3查看 18.4K关注 0票数 6

我已经构建了一个脚本来读取excel文件并将内容保存到我的数据库中。(注意:文件和脚本位于不同的目录中)。然而,当我试图从我的views.py中执行脚本作为简单的导入时,django抛出一个错误,它无法找到文件或目录:

代码语言:javascript
运行
复制
[Errno 2] No such file or directory: '\\media\\documents\\GDRAT.xls\\'

我在脚本中的实际代码如下所示:

代码语言:javascript
运行
复制
source_wb = xlrd.open_workbook('media/documents/GDRAT.xls')

我的脚本在父目录中。从命令行执行脚本工作得很好,所以我很难理解为什么django会以不同的方式读取它。

我的views.py函数看起来像这样(注意:我返回到父目录来查找脚本-这似乎工作得很好,只是找不到我需要读入的excel文件):

代码语言:javascript
运行
复制
def UpdateGDRAT(request):
    os.chdir('..')
    import GDRAT
    return render_to_response('success.html')

任何指导都是非常感谢的!

EN

回答 3

Stack Overflow用户

发布于 2014-07-26 22:12:12

这对我很管用

代码语言:javascript
运行
复制
 os.path.join(os.path.dirname(os.path.dirname(__file__)),'media/documents/GDRAT.xls')
票数 8
EN

Stack Overflow用户

发布于 2014-01-27 07:13:10

当你从终端运行脚本时,你有一个当前的工作目录,任何相对路径都是从这个目录开始的,当从另一个代码调用相同的脚本时,你的工作目录可能是不同的。

如果您知道文件相对于脚本的位置,我建议您使用动态构造的绝对路径,如下所示:

代码语言:javascript
运行
复制
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

票数 3
EN

Stack Overflow用户

发布于 2020-01-07 09:34:25

settings.py

MEDIA_ROOT = os.path.join(BASE_DIR, 'media')

代码语言:javascript
运行
复制
from django.conf import settings
import os


base_dir =settings.MEDIA_ROOT    
my_file = os.path.join(base_dir, str(GDRAT.xls))
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21370298

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档