如何用标准应用程序打开文件?

我的应用程序打印PDF到临时文件。 我怎样才能用Python中的默认应用程序打开该文件?

我需要一个解决scheme

  • 视窗
  • Linux(Ubuntu和Xfce,如果没有更通用的话)

有关

  • 用Python中的默认应用程序打开文档

os.startfile仅适用于windows,但是在任何运行X的unix客户端上都可以使用xdg-open 。

if sys.platform == 'linux2': subprocess.call(["xdg-open", file]) else: os.startfile(file) 

在Windows上它与os.system('start <myFile>') 在Mac上(我知道你没有问…)它是os.system('open <myFile>')

 if linux: os.system('xdg-open "$file"') #works for urls too else: os.system('start "$file"') #a total guess 

使用浏览器认为是适当的应用程序打开文件:

 import webbrowser webbrowser.open_new_tab(filename) 

NicDumZ的解决方案需要一个小小的修正才能完全按照给定的方式工作。 问题是使用“is”运算符。 一个工作解决方案是:

 if sys.platform == 'linux2': subprocess.call(["xdg-open", file]) else: os.startfile(file) 

关于这个主题的一个很好的讨论是在Python中的==和`is`有区别吗?

问你最喜欢的应用程序框架如何在Linux中做到这一点。

只要您使用GTK,就可以在Windos和Linux上运行:

 import gtk gtk.show_uri(gtk.gdk.screen_get_default(), URI, 0) 

其中URI是文件的本地URL