2011-11-15 117 views
3

我構建了一個應該和git一起使用的腳本,以便在git命令之後將輸出發送到尋呼機。我想用Python來做到這一點。如何在git命令後在傳呼機中顯示輸出?

我有一個寫入標準輸出的python腳本。現在我想在用戶在git中設置的尋呼機中顯示它的輸出。

我知道我可以始終提供一個包裝腳本,這是否:

git-whatever | less 

有沒有辦法從蟒蛇內做到這一點?

回答

2

你甚至不必創建臨時文件(使用管道代替):

import subprocess 

proc=subprocess.Popen('less', stdin=subprocess.PIPE) 
lines=(str(i) for i in range(1000)) 
proc.stdin.write('\n'.join(lines)) 
proc.stdin.close() 
proc.communicate() 
+0

這更好!謝謝! –

2

git喜歡將東西寫入臨時文件,然後將文件的名稱傳遞給git鉤子。所以,下面這個模式,你可以只寫你的輸出到一個臨時文件,並調用lesssubprocess.Popen

import subprocess 
import tempfile 

lines=(str(i) for i in range(1000)) 
f=tempfile.NamedTemporaryFile(mode='w') 
f.write('\n'.join(lines)) 
f.flush() 
proc=subprocess.Popen(['less',f.name]) 
proc.communicate() 
f.close() # deletes the temporary file 
+0

這似乎很乾淨。我會嘗試一下。 –

相關問題