Lauch默认编辑器(如'webbrowser'模块)

时间:2009-09-18 06:18:44

标签: python command-line editor

是否有一种简单的方法可以从Python命令行工具启动系统默认编辑器,例如webbrowser模块?

4 个答案:

答案 0 :(得分:14)

在Windows下,您可以简单地“执行”该文件,并采取默认操作:

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

对于此示例,将生成默认编辑器。在UNIX下,有一个名为EDITOR的环境变量,因此您需要使用以下内容:

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

答案 1 :(得分:4)

现代Linux打开文件的方式是使用xdg-open;但是它不保证文本编辑器将打开该文件。如果您的程序是面向命令行的(以及您的用户),则使用$EDITOR是合适的。

答案 2 :(得分:2)

如果您需要打开文件进行编辑,可能会对this question感兴趣。

答案 3 :(得分:2)

您实际上可以使用webbrowser模块执行此操作。到目前为止,针对此问题和链接问题给出的所有答案与webbrowser模块在​​幕后所做的事情完全相同。

唯一的区别是他们设置了$EDITOR,这很少见。所以也许更好的流程是:

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

好的,既然我已经告诉过你了,我应该告诉你,webbrowser模块确实声明它不支持这种情况。

  

请注意,在某些平台上,尝试使用此功能打开文件名可能会起作用并启动操作系统的相关程序。但是,既不支持也不便携。

因此,如果它不起作用,请不要提交错误报告。但对于大多数用途,它应该有用。