Откройте текстовый файл, используя блокнот в качестве файла справки в python?
Я хотел бы дать пользователям моей простой программы возможность открыть файл справки, чтобы проинструктировать их о том, как полностью использовать мою программу. В идеале я хотел бы, чтобы в моем графическом интерфейсе была небольшая синяя справочная ссылка, по которой можно было бы щелкнуть в любое время, что привело бы к открытию файла .txt в собственном текстовом редакторе, например в блокноте.
Есть ли простой способ сделать это?
Ответы
Ответ 1
import webbrowser
webbrowser.open("file.txt")
Несмотря на это имя, оно будет открыто в "Блокноте", gedit и так далее. Никогда не пробовал, но сказал, что это работает.
Альтернативой является использование
osCommandString = "notepad.exe file.txt"
os.system(osCommandString)
или как подпроцесс:
import subprocess as sp
programName = "notepad.exe"
fileName = "file.txt"
sp.Popen([programName, fileName])
но в обоих последних случаях вам нужно сначала найти собственный текстовый редактор для данной операционной системы.
Ответ 2
os.startfile('file.txt')
Из документы python:
это действует как двойной щелчок по файлу в проводнике Windows или указание имени файла в качестве аргумента команды start из командной оболочки: файл открывается любым приложением (если оно есть) его расширение связано.
Таким образом, если ваш пользователь изменил свой текстовый редактор по умолчанию, например, в блокнот ++, он будет использовать свои предпочтения вместо блокнота.
Ответ 3
Если вы хотите открыть файл справки с помощью приложения, которое в настоящее время связано с текстовыми файлами, что может быть не notepad.exe, вы можете сделать это в Windows:
import subprocess
subprocess.call(['cmd.exe', '/c', 'file.txt'])
Ответ 4
Вы можете сделать это в одной строке:
import subprocess
subprocess.call(['notepad.exe', 'file.txt'])
Вы можете переименовать файл notepad.exe в редактор по вашему выбору.
Ответ 5
Если у вас есть какой-либо предпочитаемый редактор, вы можете сначала попробовать открыть его или открыть в редакторе по умолчанию.
ret_val = os.system("gedit %s" % file_path)
if ret_val != 0:
webbrowswer.open(file_path)
В приведенном выше коде я сначала пытаюсь открыть свой файл в редакторе gedit, который является моим предпочтительным редактором. Если в системе не установлен gedit, он просто открывает файл в системном редакторе по умолчанию.
Ответ 6
Если кто-то получает экземпляр Internet Explorer, когда использует import webbrowser
, попробуйте объявить полный путь к указанному файлу.
import webbrowser
import os
webbrowser.open(os.getcwd() + "/path/to/file/in/project")
#Gets the directory of the current file, then appends the path to the file
Пример:
import webbrowser
import os
webbrowser.open(os.getcwd() + "/assets/ReadMe.txt")
#Will open something like "C:/Users/user/Documents/project/assets/ReadMe.txt"
Ответ 7
Мое приложение не отвечает, когда я использую subprocess.call(['notepad.exe', путь]) Кто-нибудь знает причину этого?