在python脚本

时间:2017-07-05 18:23:35

标签: python linux subprocess

我需要从我的python脚本在linux上显示两个文本文件的彩色差异,我正在使用vimdiff。我能够使用子进程运行vimdiff,但我无法控制回python脚本。它永远保持在vimdiff模式,直到我执行Ctrl + Z. 我想要做的是打开vimdiff并在从键盘接收某种输入后返回到python脚本。我也尝试过信号模块,但无法解决问题。

到目前为止,我是python的初学者,我试过的是:

import subprocess
p = subprocess.Popen(["vimdiff","test1.txt", "test2.txt"])
try:
 p.wait()
except KeyboardInterrupt:
 p.kill()

任何帮助将不胜感激

2 个答案:

答案 0 :(得分:0)

正如我所知,vim使用ncurses库。 对于基于运行ncurses的应用程序使用模块pexpect

import pexpect
child = pexpect.spawn("vim")
child.interact()

答案 1 :(得分:0)

vim是一个全屏幕文本模式程序,可以通过屏幕进行操作。避免管道输入/输出。更好地运行

subprocess.call(["vimdiff", "test1.txt", "test2.txt"])

或只是

os.system("vimdiff test1.txt test2.txt")
相关问题