国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

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

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

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

問題描述

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

可以這樣

1.讓ping早點(diǎn)結(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)

標(biāo)簽: Python 編程
主站蜘蛛池模板: 综合久久99久久99播放 | 国产成人亚洲日本精品 | 国产成人啪精品午夜在线观看 | 真人真实毛片免费观看 | 特黄特色一级特色大片中文 | 亚洲综合色在线观看 | 国产一区二区不卡 | 国产三级日产三级日本三级 | 加勒比在线视频 | 久久中文字幕日韩精品 | 亚洲国产欧美一区 | 欧美另类交视频 | 精品久久久久久久 | 国产日韩精品欧美一区 | 午夜三级理论在线观看视频 | 九九精品视频在线观看九九 | 亚洲免费视频网址 | 成人中文字幕在线观看 | 九九毛片| 中国一级特黄视频 | 亚洲福利精品一区二区三区 | 日韩一区二区三区在线观看 | 亚洲综合第一区 | 不卡的毛片| 婷婷在线成人免费观看搜索 | 日本一级特黄毛片高清视频 | 偷拍精品视频一区二区三区 | 欧美亚洲激情视频 | 亚洲成人黄色网址 | 91精品欧美综合在线观看 | 久久久免费的精品 | 免费黄色美女视频 | 欧美视频在线一区 | 99精品在免费线视频 | 欧美日本一区亚洲欧美一区 | 成人午夜免费视频毛片 | 精品九九久久国内精品 | 毛片视频在线免费观看 | 欧美老头老太做爰xxxx | 久草手机在线观看视频 | 欧美日韩 在线播放 |