我有在Python中運行的Linux命令。如何接收Python中發生的命令輸出?
roc = subprocess.Popen(['sshpass', '-p', password, 'rsync', '-avz', '--info=progress2', hostname, '/home/zurelsoft/test'],
stderr=subprocess.PIPE, stdout=subprocess.PIPE).communicate()[0]
print roc
只有當它完成執行時纔會打印命令處理。但是,我希望在命令發生時輸出,並在命令完全執行時停止。如何做到這一點?
謝謝您的回答。我想將命令的輸出存儲在變量中,並將它作爲json發送給javascript。但我想在終端本身stdin.write()輸出。它可以存儲在一個變量,並可以在JavaScript中傳遞?由於 – user1881957
@ user1881957:你可以轉儲在一個文件中,並完成後讀它,但如果你想使用這個變量以及按我的理解,你不能因爲你不能輸出追加到一個變量,你只能重新分配它,你不想要的(它會分配新的輸出並覆蓋之前存儲的輸出) – avasal
我試圖用這些數據顯示進度條,因此完成後沒有指向它。我需要一種方式來讀取正在發生的進度。 – user1881957