在Python中获取文件关联

时间:2011-04-04 11:08:13

标签: python windows linux file

我希望在Linux和Windows中获得与扩展相关联的程序。我知道我可以在Linux中执行xdg-open或在Windows中启动,但我要在远程服务器上打开媒体文件,因此使用此方法将打开Web浏览器,而不是默认的媒体播放器。如何获取扩展的默认应用程序?

2 个答案:

答案 0 :(得分:1)

有一个名为xdg-mime的程序,就像xdg-open,但打印信息而不是试图打开文件。

xdg-mime query filetype /tmp/foobar.png

打印文件/tmp/foobar.png的MIME类型,在本例中为image / png

xdg-mime query default image/png

打印已注册的应用程序的.desktop文件名以打开PNG文件。

在Windows上,如果找不到API,可以使用assocftype作为cmd的一部分。

答案 1 :(得分:1)

仅在下面覆盖Windows:

我认为它将接近我刚才通过的.doc(与winword.exe相关联)。

在我的机器上......

步骤1:查看注册表项: HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.doc


Windows XP

第2步:查看默认值(忽略其他所有内容)。 我看到的默认值是Word.Document.8

第3步:现在使用它,并将其插入(注意下面的密钥名称),以读取默认值

HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Word.Document.8\shell\Open\command

该值是: “\”C:\ Program Files \ Microsoft Office XP Pro 2003 \ OFFICE11 \ WINWORD.EXE \“/ n / dde”

这就是我系统上MS Word的路径,至少在XP上。

还注意到,关于米克尔上面的建议,那些钉在XP上:

C:\>assoc .doc
.doc=Word.Document.8

C:\>ftype Word.Document.8
Word.Document.8="C:\Program Files\Microsoft Office XP Pro 2003\OFFICE11\WINWORD.EXE" /n /dde

Windows 7

STEP 1的默认值没有设置值,darn,简单了。 有一个名为'OpenWithProgIDs'的子项,所以如果默认值为空或取决于操作系统版本,我想你会找到它。

步骤2:读取名为“OpenWithProgIDs”的子项。 有一个名为Word.Document.8的项目,所以我们现在回到那里。

步骤3:再次插入,以读取

的默认值
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Word.Document.8\shell\Open\command

在这种情况下(我的),价值更复杂:

“C:\ Program Files(x86)\ Common Files \ microsoft shared \ virtualization handler \ cvh.exe”“Microsoft Word Starter 2010 9014006604090000”/ n“%1”

在正确的社区,就使用注册表而言。

不幸的是,在Windows 7上,'assoc'和'ftype'至少对.doc和我机器上的winword.exe路径没有做到。