0

我有实际的关联部分,但是当我打开与我的 Python 程序关联的文件时,如何获取打开的文件的文件路径?

我认为它类似于 sys.argv?但这只是返回 python 程序的路径,而不是关联的文件。

4

2 回答 2

1

您的模块的__file__属性看起来像您要查找的内容。例如,保存在foo.py

$ cat foo.py
print 'Hello', __file__
$ python foo.py 
Hello foo.py

os.path.abspath如果您想要绝对路径而不是相对路径等,将为您提供帮助。

于 2010-04-28T04:45:57.253 回答
1

sys.argv 的内容取决于平台,如sys.argv中所述。我确实知道,sys.argv[0]只有当您.py通过双击使用 shell 打开文件时,它才是 Windows 上的完整路径。使用命令行只会产生脚本名称。

os模块提供独立于平台的解决方案。您的脚本的完整路径应始终可通过以下代码获得:

import os.path
import sys

print os.path.abspath(sys.argv[0])
于 2010-04-28T04:55:03.560 回答