如何从git这样的命令行程序中调用文本编辑器?

时间:2014-09-29 20:44:24

标签: python linux command-line-interface

某些git命令,例如git commit,会调用预填充的基于命令行的文本编辑器(例如vimnano或其他)值和用户保存并存在后,对保存的文件执行某些操作。

如何在Linux上将此功能添加到Python类似的命令行程序?


如果不使用Python,请不要因为给出答案而停止自己,我会对一般的抽象答案感到满意,或者用另一种语言的答案作为答案。

1 个答案:

答案 0 :(得分:1)

解决方案取决于您拥有的编辑器,编辑器可能找到的环境变量以及编辑器是否采用任何命令行参数。

这是一个简单的解决方案,适用于没有任何环境变量或编辑器命令行参数的Windows。根据需要进行修改。

import subprocess
import os.path

def start_editor(editor,file_name):

    if not os.path.isfile(file_name): # If file doesn't exist, create it
        with open(file_name,'w'): 
            pass

    command_line=editor+' '+file_name # Add any desired command line args
    p = subprocess.Popen(command_line)
    p.wait()

file_name='test.txt' # Probably known from elsewhere
editor='notepad.exe' # Read from environment variable if desired

start_editor(editor,file_name)

with open(file_name,'r') as f: # Do something with the file, just an example here
    for line in f:
        print line