我有一個相當長的運行作業,運行幾分鐘然後重新啓動。任務輸出我捕獲像這樣的各種信息:如何捕獲輸出並使用Python同時顯示它?
output = subprocess.Popen(cmd,stdout=subprocess.PIPE).communicate()
事情是,我一次只能得到整個輸出。我想顯示輸出爲程序發送到標準輸出,同時仍然推回到緩衝區(我需要檢查輸出是否存在一些字符串)。在Ruby中我會做這樣的:
IO.popen(cmd) do |io|
io.each_line do |line|
puts line
buffer << line
end
end
由於您沒有指定緩衝區大小,因此兩個進程之間會添加4KB緩衝區,所以它們通常不會相互阻塞。 –