python subprocess重定向標准輸出


subprocess.call("ping -c 1 %s" % ip,shell = True,stdout = open('/dev/null','w'),stderr = subprocess.STDOUT)

ping發送一個ICMP請求,並且將標准輸出重定向到/dev/null,相當於丟棄,並且將標准錯誤輸出重新定向到標准輸出。這條語句返回其實就是ping值,就是python程序先創建shell進程,shell創建ping進程,ping進程運行返回值被shell等待,shell返回值給python程序wait,如果成功則為0.

subprocess.Popen("arping -c 1  %s" % ip,shell = True,stdout = subprocess.PIPE)

 arp請求局域網內的ip機器的mac, 有相應arping返回0, 否則返回1, 一路從arping->shell->py返回上來,stdout是重定向子進程的標准輸出到一個管道, py進程就可以讀取管道得到子進程的輸出了.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM