Подтвердить что ты не робот

Как открыть файл со стандартным приложением?

Мое приложение печатает PDF во временный файл. Как открыть этот файл с помощью приложения по умолчанию в Python?

Мне нужно решение для

  • для Windows
  • Linux (Ubuntu с Xfce, если нет ничего более общего.)

Связанные

4b9b3361

Ответ 1

os.startfile доступен только для окон, но xdg-open будет доступен на любом клиенте unix с X.

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

Ответ 2

в окнах работает с os.system('start <myFile>'). На Mac (я знаю, вы не спросили...) это os.system('open <myFile>')

Ответ 3

Открыть файл с помощью приложения, которое ваш браузер считает подходящим:

import webbrowser
webbrowser.open_new_tab(filename)

Ответ 4

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

Ответ 5

Для решения NicDumZ необходима небольшая коррекция для работы точно так, как указано. Проблема заключается в использовании оператора "is". Рабочее решение:

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

Хорошее обсуждение этой темы находится в Есть ли разница между` == `и` is` в Python?.

Ответ 6

Спросите свою любимую Application Framework, как это сделать в Linux.

Это будет работать на Windos и Linux, если вы используете GTK:

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

где URI - локальный URL-адрес файла