Python-如何正确确定当前脚本目录?
我想看看确定python中当前脚本目录的最佳方法是什么?
我发现由于调用python代码的方式很多,很难找到一个好的解决方案。
这里有一些问题:
__file__
如果脚本与执行没有定义exec,execfile
__module__
仅在模块中定义
用例:
- ./myfile.py
- python myfile.py
- ./somedir/myfile.py
- python somedir/myfile.py
- execfile(‘myfile.py’) (来自另一个脚本,该脚本可以位于另一个目录中,并且可以具有另一个当前目录。
我知道没有完美的解决方案,但是我正在寻找能够解决大多数情况的最佳方法。
最常用的方法是,os.path.dirname(os.path.abspath(__file__))
但是如果你使用来从另一个脚本执行脚本,则此方法实际上不起作用exec()
。
注意
使用当前目录的任何解决方案都会失败,这可能会因调用脚本的方式而有所不同,或者可以在运行的脚本中进行更改。
回答:
os.path.dirname(os.path.abspath(__file__))
确实是你将获得的最好的。
用exec/
执行脚本是不寻常的execfile
。通常,你应该使用模块基础结构来加载脚本。如果必须使用这些方法,我建议设置__file__
在globals
传递给脚本,以便它可以读取该文件名。
没有其他方法可以在执行代码中获取文件名:如你所述,CWD
可能位于完全不同的位置。
以上是 Python-如何正确确定当前脚本目录? 的全部内容, 来源链接: utcz.com/qa/409422.html