Ответ 1
os.startfile доступен только для окон, но xdg-open будет доступен на любом клиенте unix с X.
if sys.platform == 'linux2':
subprocess.call(["xdg-open", file])
else:
os.startfile(file)
Мое приложение печатает PDF во временный файл. Как открыть этот файл с помощью приложения по умолчанию в Python?
Мне нужно решение для
os.startfile доступен только для окон, но xdg-open будет доступен на любом клиенте unix с X.
if sys.platform == 'linux2':
subprocess.call(["xdg-open", file])
else:
os.startfile(file)
в окнах работает с os.system('start <myFile>')
. На Mac (я знаю, вы не спросили...) это os.system('open <myFile>')
Открыть файл с помощью приложения, которое ваш браузер считает подходящим:
import webbrowser
webbrowser.open_new_tab(filename)
if linux:
os.system('xdg-open "$file"') #works for urls too
else:
os.system('start "$file"') #a total guess
Для решения NicDumZ необходима небольшая коррекция для работы точно так, как указано. Проблема заключается в использовании оператора "is". Рабочее решение:
if sys.platform == 'linux2':
subprocess.call(["xdg-open", file])
else:
os.startfile(file)
Хорошее обсуждение этой темы находится в Есть ли разница между` == `и` is` в Python?.
Спросите свою любимую Application Framework, как это сделать в Linux.
Это будет работать на Windos и Linux, если вы используете GTK:
import gtk
gtk.show_uri(gtk.gdk.screen_get_default(), URI, 0)
где URI
- локальный URL-адрес файла