我想看看在Python中确定当前脚本目录的最佳方法是什么。
我发现,由于调用Python代码的方式很多,很难找到一个好的解决方案。
以下是一些问题:
如果使用模块执行脚本,则不定义
__file__
;如果仅在execfile
__module__
中定义模块,则不定义exec
使用案例:
./myfile.py
python myfile.py
./somedir/myfile.py
python somedir/myfile.py
execfile('myfile.py')
(来自另一个脚本,可以位于另一个目录中,并且可以拥有另一个当前目录。我知道没有完美的解决方案,但我正在寻找解决大多数情况的最佳方法。
最常用的方法是os.path.dirname(os.path.abspath(__file__))
,但是如果您使用exec()
从另一个脚本执行脚本,那么这种方法就不起作用了。
警告
任何使用当前目录的解决方案都将失败,这可能会根据脚本的调用方式而有所不同,也可以在运行的脚本中进行更改。
https://stackoverflow.com/questions/3718657
复制相似问题