我已经构建了一个脚本来读取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文件):< / p>
def UpdateGDRAT(request):
os.chdir('..')
import GDRAT
return render_to_response('success.html')
非常感谢任何指导!
答案 0 :(得分:5)
这对我有用
os.path.join(os.path.dirname(os.path.dirname(__file__)),'media/documents/GDRAT.xls')
答案 1 :(得分:3)
当您从终端运行脚本时,您有一个当前工作目录,任何相对路径都从该目录开始,当从另一个代码调用相同的脚本时,您的工作目录可能会有所不同。
如果你知道文件相对于脚本的位置,我建议你使用这样动态构造的绝对路径:
import os
GDRAT_abs_path = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'media/documents/GDRAT.xls')
__ file__为您提供当前文件的路径(假设该行放在脚本中);
对于dirname,请参阅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
答案 2 :(得分:0)
选择此方法来修复这些错误。对我来说很好
第1步:安装pipenv
pip install pipenv
第2步:打开PipEnv Shell
pipenv shell
第3步:使用pip安装Django
pip install django
第4步:在Django中启动一个新项目
django-admin startproject projectname
第5步:在内部导航,然后生成项目文件夹
cd projectname
第6步:(可选)列出目录中的文件
ls
第7步:在端口:8081中启动服务器
python manage.py runserver 8081