请考虑以下Python代码:
import os
print os.getcwd()
我使用os.getcwd()
来获取脚本文件的目录位置。当我从命令行运行脚本时,它会给出正确的路径,但是当我从Django视图中的代码运行它时,它会打印/
。
如何在由Django视图运行的脚本中获取脚本的路径?
更新:
总结到目前为止的答案 - os.getcwd()
和os.path.abspath()
都会给出当前工作目录,可能不是脚本所在的目录。在我的Web主机设置中,
只提供文件名而没有路径。__file__
在Python中难道没有一种(始终)能够接收脚本所在路径的方法吗?
getcwd
来获取脚本的位置,而是建议使用argv[0]
、dirname
和abspath
。 - Rob Kennedyos.chdir
相比,该命令用于设置当前工作目录;它不会将您的脚本文件移动到硬盘驱动器上的新位置。初始工作目录可能与您的脚本所在目录相同,但并不总是这样;该文章甚至进行了演示。 - Rob Kennedy__file__
将返回脚本上下文的文件名。如果您从__main__
调用外部脚本,则应该谨慎小心 - 您可能会得到与预期不同的响应。 - user559633