我有实际的关联部分,但是当我打开与我的 Python 程序关联的文件时,如何获取打开的文件的文件路径?
我认为它类似于 sys.argv?但这只是返回 python 程序的路径,而不是关联的文件。
您的模块的__file__
属性看起来像您要查找的内容。例如,保存在foo.py
:
$ cat foo.py
print 'Hello', __file__
$ python foo.py
Hello foo.py
os.path.abspath
如果您想要绝对路径而不是相对路径等,将为您提供帮助。
sys.argv 的内容取决于平台,如sys.argv中所述。我确实知道,sys.argv[0]
只有当您.py
通过双击使用 shell 打开文件时,它才是 Windows 上的完整路径。使用命令行只会产生脚本名称。
该os
模块提供独立于平台的解决方案。您的脚本的完整路径应始终可通过以下代码获得:
import os.path
import sys
print os.path.abspath(sys.argv[0])