Редактор Lauch по умолчанию (например, модуль "webbrowser" )

Есть ли простой способ воспользоваться стандартным редактором систем из инструмента командной строки Python, например, webbrowser?

Ответ 1

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

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

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

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

Ответ 2

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

Ответ 3

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

Ответ 4

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

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

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

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

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

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