2010-04-28 71 views
0

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

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

回答

1

sys.argv中的内容是与平台相关的,如sys.argv注意。我知道sys.argv[0]是Windows上的完整路径,只有当您通过双击打开使用shell的.py文件时。使用命令行只会产生脚本名称。

os模块提供平台无关的解决方案。您的脚本的完整路径应始终可用以下代码:

import os.path 
import sys 

print os.path.abspath(sys.argv[0]) 
1

模块的__file__属性看起来是你要找的。例如,保存foo.py

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

os.path.abspath会帮助你,如果你想绝对而不是相对路径,等等,等等

+0

咦?我需要双击打开该程序的文件的pathanme,即双击file1.dgf并打开prog.exe。如何获得file1.dfg的完整路径? – 2010-04-28 04:48:58

+0

你把你的问题标记为'python',那么'prog.exe'与它有什么关系?无论如何,我怀疑你的问题依赖于操作系统,而且由于你没有与操作系统相关的标记,我不知道“关联”是在Windows,MacOSX,KDE,Gnome还是其他的。你的(python?)程序是否将点击文件的路径作为“sys.argv [1]”?它应该在这些环境中,但由于我不知道你的环境,所以很难猜到! - ) – 2010-04-28 04:55:18

+0

它是一个Windows平台。 Prog.exe是编译为.exe的Python程序,因此是文件类型关联。当我使用sys.argv [1]时,它只能获得自己的路径,我不知道为什么。 – 2010-04-28 06:12:41