Есть ли простой способ воспользоваться стандартным редактором систем из инструмента командной строки Python, например, webbrowser?
Редактор Lauch по умолчанию (например, модуль "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 заявляет, что он не поддерживает этот случай.
Обратите внимание, что на некоторых платформах попытка открыть имя файла с помощью этой функции может сработать и запустить программу, связанную с операционной системой. Однако это не поддерживается и не переносимо.
Так что, если это не работает, не отправляйте отчет об ошибке. Но для большинства случаев это должно работать.