午夜剧场伦理_日本一道高清_国产又黄又硬_91黄色网战_女同久久另类69精品国产_妹妹的朋友在线

您的位置:首頁技術文章
文章詳情頁

python - subprocess.Popen執行命令后stdout.read()到的信息為空,是路由原因還是自身程序問題?

瀏覽:194日期:2022-06-29 16:58:15

問題描述

下面的代碼是我日常用來監測網絡聯通性的,昨天之前(截止到前天晚上)都可以獲取到返回的信息,而昨天開始stdout.read()讀到的內容就是空。 我直接在CMD窗口ping主機返回的信息是聯通的,用call方法取到的返回信息也正常。請大神幫忙解惑

cmd=’ping 10.9.88.69’P=subpross.Popen(cmd,stdin=subprocess.PIPE,stdout=subprocess.PIPE,stderr=subprocess.PIPE,shell=True)reshult=p.stdout.read()

問題解答

回答1:

你這個命令ping 10.9.88.69 在linux環境下是不會停止的,而且subprocess.Popen默認是等待命令結束才返回結果,是阻塞的

可以這樣

1.讓ping早點結束 加多個以參數 -c 指定下ping的次數

cmd=’ping 10.9.88.69 -c 3’P=subpross.Popen(cmd,stdin=subprocess.PIPE,stdout=subprocess.PIPE,stderr=subprocess.PIPE,shell=True)reshult=p.stdout.read()

2.把阻塞變為不阻塞

import osimport timeimport fcntlimport subprocesscmd = ’ping 10.9.88.69’p = subprocess.Popen(cmd, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE,shell=True)fd = p.stdout.fileno()fl = fcntl.fcntl(fd, fcntl.F_GETFL)fcntl.fcntl(fd, fcntl.F_SETFL, fl | os.O_NONBLOCK)while True: try:line = p.stdout.readline()print(line) except:time.sleep(1)

標簽: Python 編程
主站蜘蛛池模板: 久久久久999 | 日日操夜夜爽 | 顶级嫩模啪啪呻吟不断好爽 | 日日爽爽 | 国产午夜精品理论片 | 牛牛av在线 | 天堂在线一区二区 | 天天干天天添 | 国产69久久精品成人看 | 91精品久久久久久粉嫩 | 欧美黄色影院 | 精品一区三区 | 好吊色青青草 | 香蕉视频在线观看网站 | 日批视频在线播放 | 欧美三级黄色大片 | 日韩欧美在线观看视频 | 国产视频在线观看免费 | 国产乱在线 | 十八女人毛片 | 伊人久久青青 | 欧美午夜在线 | 亚洲精品美女 | 中文字幕第5页 | 国产一区欧美一区 | 黄网免费在线观看 | 欧美日韩伊人 | 中文国产 | 国产精品久草 | 成人免费毛片片v | 欧美性大战久久久 | 日韩网站免费 | 超碰97在线播放 | 免费欧美视频 | 成人午夜视频免费看 | 欧美一级在线观看 | 久久久网站| 亚洲视频免费在线 | 国产又粗又猛又黄又爽 | 九九热精品免费视频 | 777久久久 |