最近我花了几个小时才发现在运行此脚本时如何获得输出 ping = subprocess.check_output([“start”,“cmd.exe”,“/ k”,“ping”,“ - t”,SomeIP],shell = True)
我在互联网上找到的所有答案都建议使用communicte(),subprocess.call和其他不可用的命令,因为所有这些命令都迫使我停止脚本。
请帮帮我:) 我的python是2.7
答案 0 :(得分:1)
另一个解决方案是将ping的结果保存到文件然后从中读取...
import subprocess, threading
class Ping(object):
def __init__(self, host):
self.host = host
def ping(self):
subprocess.call("ping %s > ping.txt" % self.host, shell = True)
def getping(self):
pingfile = open("ping.txt", "r")
pingresults = pingfile.read()
return pingresults
def main(host):
ping = Ping(host)
ping.ping()
#startthread(ping.ping) if you want to execute code while pinging.
print("Ping is " + ping.getping())
def startthread(method):
threading.Thread(target = method).start()
main("127.0.0.1")
基本上,我只是执行cmd ping命令,在cmd ping命令中我使用了> ping.txt将结果保存到文件中。然后你只需从文件中读取并获得ping详细信息。请注意,如果要在执行自己的代码时执行ping,则可以启动一个线程。