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

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

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

瀏覽:110日期: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 編程
主站蜘蛛池模板: 久久国产精品-久久精品 | 国产欧美日韩精品一区二 | 久久久久亚洲日日精品 | 在线看免费观看韩国特黄一级 | 伊人成人在线视频 | 国产啪精品视频网免费 | 成人网18免费网 | 97青草香蕉依人在线播放 | 国模午夜写真福利视频在线 | 亚洲国产精久久久久久久春色 | 欧美做暖小视频xo免费 | 久久免费国产视频 | 狠狠色狠狠色综合久久第一次 | 国产欧美日韩在线 | 在线观看中文字幕国产 | 日本在线观看www免费 | 色www永久免费 | 特级做a爰片毛片免费看 | 加勒比毛片 | 久草三级| 在线观看国产精品入口 | 美女黄视频网站 | 亚洲在线日韩 | 国产精品一区二区四区 | 国产成人精品午夜 | 久久欧美精品欧美久久欧美 | 日韩午夜片 | 精品久久久久久国产 | 欧美一级性视频 | 香港经典a毛片免费观看爽爽影院 | 久久精品视频1 | 九九干 | 真人真实毛片免费观看 | 国产精品一区二区久久精品 | 国产在线观看精品一区二区三区91 | 久草视频精品在线 | 国产美女无遮挡软件 | 久久永久免费视频 | 在线日本视频 | 亚洲午夜网 | 一级国产视频 |