色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁技術(shù)文章
文章詳情頁

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

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

問題描述

下面的代碼是我日常用來監(jiān)測網(wǎng)絡(luò)聯(lián)通性的,昨天之前(截止到前天晚上)都可以獲取到返回的信息,而昨天開始stdout.read()讀到的內(nèi)容就是空。 我直接在CMD窗口ping主機返回的信息是聯(lián)通的,用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環(huán)境下是不會停止的,而且subprocess.Popen默認是等待命令結(jié)束才返回結(jié)果,是阻塞的

可以這樣

1.讓ping早點結(jié)束 加多個以參數(shù) -c 指定下ping的次數(shù)

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.把阻塞變?yōu)椴蛔枞?/p>

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 編程
主站蜘蛛池模板: www日| 免费看a级毛片 | 国产精品久久一区二区三区 | 一级免费视频 | 成人女人a毛片在线看 | 韩国美女高清爽快一级毛片 | 99久久精品免费视频 | 日本特黄网站 | 92国产福利久久青青草原 | 亚洲自拍在线观看 | 久久精品视频99精品视频150 | 欧美aaa大片 | 亚洲成人手机在线 | 香港三级做爰大爽视频 | 男人免费看片 | 欧美三级在线观看不卡视频 | 国产精品久久久久久久久久免费 | 成年人在线免费 | 日韩精品视频美在线精品视频 | 国产97视频在线 | www.xxx.国产| www成人国产在线观看网站 | 男女午夜爱爱久久无遮挡 | 在线播放亚洲精品 | 欧美日韩精品一区二区三区 | 久久综合成人网 | 国产视频高清在线观看 | 日本www免费| 久一在线 | 久久久网久久久久合久久久久 | 亚洲综合无码一区二区 | 91精品国产免费久久国语蜜臀 | 古代级a毛片可以免费看 | 日韩国产欧美一区二区三区在线 | 成人亲子乱子伦视频 | 亚洲国产精品一区二区三区久久 | 日韩欧美成末人一区二区三区 | 最新国产三级久久 | 一区二区三区欧美在线 | 亚洲第一网站 | 国产一级性片 |