我的应用程序打印PDF到临时文件。 我怎样才能用Python中的默认应用程序打开该文件?
我需要一个解决scheme
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