我一直在使用sh模塊來主要執行Git命令。我遇到的問題是,sh生成子殼來完成這項工作,std輸出沒有定向到我的主Python腳本的輸出。當然,我能做到以下幾點,每個sh.git通話,就像如下:爲python創建一個不尋常的包裝sh
git = sh.git.bake(_cwd=repoPath)
print git.fetch().stdout
print git.log('-n=1', SHA).stdout
但我並不想這樣做。我想打一個包裝,所以我可以在我的git電話嵌入標準輸出打印功能,所以也許是這樣,但具有相同的結果:
git = wrapper(sh.git.bake(_cwd=repoPath))
git.fetch()
git.log('-n=1', SHA)
我讀過有關Python的功能,裝飾,但我沒有一直能夠弄清楚。
爲什麼不直接調用git不使用sh?或者使用[gitpython](https://pythonhosted.org/GitPython/0.3.1/intro.html)封裝器 – Mark
但是我仍然對非Git的東西有同樣的問題,不是嗎? – user3385082
如果你不使用sh – Mark