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

Откройте текстовый файл, используя блокнот в качестве файла справки в python?

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

Есть ли простой способ сделать это?

4b9b3361

Ответ 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', путь]) Кто-нибудь знает причину этого?