某些git
命令,例如git commit
,会调用预填充的基于命令行的文本编辑器(例如vim
或nano
或其他)值和用户保存并存在后,对保存的文件执行某些操作。
如何在Linux上将此功能添加到Python类似的命令行程序?
如果不使用Python,请不要因为给出答案而停止自己,我会对一般的抽象答案感到满意,或者用另一种语言的答案作为答案。
答案 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