我有实际的关联部分,但是当我打开与我的Python程序关联的文件时,如何获取打开文件的文件路径?帮助文件类型关联!
我认为这是像sys.argv?但是,这只是返回到python程序的路径,而不是关联的文件。
我有实际的关联部分,但是当我打开与我的Python程序关联的文件时,如何获取打开文件的文件路径?帮助文件类型关联!
我认为这是像sys.argv?但是,这只是返回到python程序的路径,而不是关联的文件。
sys.argv中的内容是与平台相关的,如sys.argv注意。我知道sys.argv[0]
是Windows上的完整路径,只有当您通过双击打开使用shell的.py
文件时。使用命令行只会产生脚本名称。
os
模块提供平台无关的解决方案。您的脚本的完整路径应始终可用以下代码:
import os.path
import sys
print os.path.abspath(sys.argv[0])
模块的__file__
属性看起来是你要找的。例如,保存foo.py
:
$ cat foo.py
print 'Hello', __file__
$ python foo.py
Hello foo.py
os.path.abspath
会帮助你,如果你想绝对而不是相对路径,等等,等等
咦?我需要双击打开该程序的文件的pathanme,即双击file1.dgf并打开prog.exe。如何获得file1.dfg的完整路径? – 2010-04-28 04:48:58
你把你的问题标记为'python',那么'prog.exe'与它有什么关系?无论如何,我怀疑你的问题依赖于操作系统,而且由于你没有与操作系统相关的标记,我不知道“关联”是在Windows,MacOSX,KDE,Gnome还是其他的。你的(python?)程序是否将点击文件的路径作为“sys.argv [1]”?它应该在这些环境中,但由于我不知道你的环境,所以很难猜到! - ) – 2010-04-28 04:55:18
它是一个Windows平台。 Prog.exe是编译为.exe的Python程序,因此是文件类型关联。当我使用sys.argv [1]时,它只能获得自己的路径,我不知道为什么。 – 2010-04-28 06:12:41