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()
。
注意
使用当前目录的任何解决方案都会失败,这可能会因调用脚本的方式而有所不同,或者可以在运行的脚本中进行更改。