我構建了一個應該和git一起使用的腳本,以便在git命令之後將輸出發送到尋呼機。我想用Python來做到這一點。如何在git命令後在傳呼機中顯示輸出?
我有一個寫入標準輸出的python腳本。現在我想在用戶在git中設置的尋呼機中顯示它的輸出。
我知道我可以始終提供一個包裝腳本,這是否:
git-whatever | less
有沒有辦法從蟒蛇內做到這一點?
我構建了一個應該和git一起使用的腳本,以便在git命令之後將輸出發送到尋呼機。我想用Python來做到這一點。如何在git命令後在傳呼機中顯示輸出?
我有一個寫入標準輸出的python腳本。現在我想在用戶在git中設置的尋呼機中顯示它的輸出。
我知道我可以始終提供一個包裝腳本,這是否:
git-whatever | less
有沒有辦法從蟒蛇內做到這一點?
你甚至不必創建臨時文件(使用管道代替):
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()
git喜歡將東西寫入臨時文件,然後將文件的名稱傳遞給git鉤子。所以,下面這個模式,你可以只寫你的輸出到一個臨時文件,並調用less
與subprocess.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
這似乎很乾淨。我會嘗試一下。 –
這更好!謝謝! –