Change directory to the directory of a Python script
如何使用中的python脚本将目录更改为目录?到目前为止,我发现我应该使用os.chdir和sys.argv[0]。我确信还有更好的方法来编写自己的函数来解析argv[0]。
- 您可以直接复制粘贴:import os; os.chdir(os.path.dirname(__file__))。
- 如何在python中更改目录(cd)的可能副本?
1
| os.chdir(os.path.dirname(__file__)) |
- 不管什么原因,文件是C:devpython25libidlelib,所以用argv[0]快速替换就解决了这个问题。+1并检查标记
- 另外,根据平台的不同,您可能希望在os.path.dirname的结果上使用os.path.abspath,以确保任何符号链接或其他文件系统重定向得到正确扩展。
有时是不确定的,在这__file__案例,你可以试试sys.path[0]
- @Miki-什么时候没有定义__file__?
- @Robbednark:python3.3 -c"print(__file__)"。
- @Janustroelsen:对于python 2.7也是如此。
os.chdir(os.path.dirname(os.path.abspath(__file__)))应该做的。
os.chdir(os.path.dirname(__file__))将不会工作,如果脚本从目录运行它的现在。
- 它还可以编写os.chdir(os.path.dirname(__file__) or '.')。当__file__没有前缀./时,就会出现目录内问题。在这种情况下,os.path.dirname返回一个空字符串。
- 很好的观察@george:)
如果你的Windows上的电话,这样的事情,这os.chdir Python somefile.py(os.path.dirname(_ _文件_ _))将windowserror投掷。但这应该工作的所有案件。
1 2 3
| import os
absFilePath = os.path.abspath(__file__)
os.chdir( os.path.dirname(absFilePath) ) |