Lauch редактор по умолчанию (например, модуль 'webbrowser') - PullRequest
12 голосов
/ 18 сентября 2009

Существует ли простой способ запуска системного редактора по умолчанию из инструмента командной строки Python, например модуля webbrowser ?

Ответы [ 4 ]

15 голосов
/ 18 сентября 2009

В Windows вы можете просто «выполнить» файл, и будет выполнено действие по умолчанию:

os.system('c:/tmp/sample.txt')

Для этого примера появится редактор по умолчанию. В UNIX есть переменная окружения с именем EDITOR, поэтому вам нужно использовать что-то вроде:

os.system('%s %s' % (os.getenv('EDITOR'), filename))

4 голосов
/ 18 сентября 2009

Современный способ открытия файла в Linux - это xdg-open; однако это не гарантирует, что текстовый редактор откроет файл. Использование $EDITOR целесообразно, если ваша программа ориентирована на командную строку (и ваших пользователей).

2 голосов
/ 23 сентября 2014

Вы можете использовать модуль webbrowser для этого. Все ответы на этот и на этот вопросы, приведенные к настоящему моменту, - это то же самое, что и модуль webbrowser .

ЕДИНСТВЕННАЯ разница, если они имеют $EDITOR, что редко. Так что, возможно, лучший поток будет:

editor = os.getenv('EDITOR')
if editor:
    os.system(editor + ' ' + filename)
else:
    webbrowser.open(filename)

Хорошо, теперь, когда я вам это сказал, я должен сообщить вам, что модуль веб-браузера заявляет, что не поддерживает этот случай.

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

Так что, если это не сработает, не отправляйте отчет об ошибке. Но для большинства случаев это должно работать.

2 голосов
/ 18 сентября 2009

Если вам нужно открыть файл для редактирования, вас может заинтересовать этот вопрос .

...