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