我正在尋找實現調用另一個腳本並捕獲其stdout的python腳本。所調用的腳本會包含一些輸入和輸出消息,例如獲取stdout以顯示包含輸入的調用腳本
print ("Line 1 of Text")
variable = raw_input("Input 1 :")
print "Line 2 of Text Input: ", vairable
我運行代碼的部分是
import subprocess
cmd='testfile.py'
p = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE)
so, se = p.communicate()
print(so)
所發生的問題是,標準輸出不打印,直到後腳本已執行。這會留下空白的提示,等待用戶輸入。有沒有辦法讓被調用的腳本仍在運行時輸出stdout?
感謝,
從這裏:HTTP://計算器。COM /問題/ 230751 /如何對平齊輸出的 - 蟒蛇打印 進口SYS sys.stdout.flush() – 2012-03-30 03:48:23
哪個操作系統,你定位?這種類型的應用程序在Windows上有一些奇怪的現象 – Fuzz 2012-03-31 03:37:41
@Fuzz腳本需要在Windows XP和7上運行 – Scavenger 2012-03-31 03:49:23