簡體   English   中英

在python腳本中運行linux子進程

[英]Running a linux subprocess in python script

我需要從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()

任何幫助將不勝感激

我知道vim使用ncurses庫。 對於基於運行ncurses的應用程序,請使用模塊pexpect

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

vim是一個全屏文本模式程序,可對屏幕進行欺騙。 避免管道輸入/輸出。 更好的運行

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

或簡單地

os.system("vimdiff test1.txt test2.txt")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM