python 獲取subprocess實時輸出信息

import subprocess


p = subprocess.Popen("ping www.baidu.com -n 6",shell=True,stdout=subprocess.PIPE)


#一下面是第一種方法(使用時請先註釋第二種方法)

for i in iter(p.stdout.readline, b''):

    print i.rstrip()


#下面是第二種方法(使用時請先註釋第一種方法)

returncode = p.poll() #用於檢查子進程是否已經結束

while returncode is None:

    print p.stdout.readline().strip()

    returncode = p.poll()

print p.stdout.read() #由於上面都是一行一行的獲取,有可能導致最後幾行還沒有獲取到,所以最後直接輸出所有

print returncode


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章