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