使用记事本打开文本文件作为python中的帮助文件?

时间:2011-05-30 15:29:41

标签: python

我想为我的简单程序的用户提供打开帮助文件的机会,以指导他们如何充分利用我的程序。理想情况下,我想在我的GUI上有一个蓝色的小帮助链接,可以随时点击,导致.txt文件在本机文本编辑器中打开,例如记事本。

有一种简单的方法吗?

6 个答案:

答案 0 :(得分:36)

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])

但是在后面这两种情况下,您首先需要找到给定操作系统的本机文本编辑器。

答案 1 :(得分:10)

os.startfile('file.txt')

来自the python docs

  

这就像在Windows资源管理器中双击文件,或者从交互式命令shell中将文件名作为参数提供给 start 命令一样:文件随任何应用程序打开(如果有的话)它的扩展名是相关联的。

这样,如果您的用户将默认文本编辑器更改为例如notepad ++,它将使用他们的首选项而不是记事本。

答案 2 :(得分:3)

如果您想使用当前与文本文件相关联的应用程序(可能不是notepad.exe)打开帮助文件,您可以在Windows上以这种方式执行此操作:

import subprocess
subprocess.call(['cmd.exe', '/c', 'file.txt'])

答案 3 :(得分:2)

您可以在一行中执行此操作:

import subprocess
subprocess.call(['notepad.exe', 'file.txt'])

您可以将notepad.exe重命名为您选择的编辑器。

答案 4 :(得分:0)

如果您有任何首选的编辑器,则可以先尝试在该编辑器中打开,或者在默认编辑器中打开。

ret_val = os.system("gedit %s" % file_path)
if ret_val != 0:
    webbrowswer.open(file_path)

在上面的代码中,我首先尝试在gedit编辑器(我的首选编辑器)中打开文件,如果系统未安装gedit,它将在系统的默认编辑器中打开文件。

答案 5 :(得分:0)

如果任何人使用import webbrowser时都在获取Internet Explorer的实例,请尝试声明指定文件的完整路径。

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"