因此,每当我发送数据包时,我一直在努力抑制终端输出。我只想验证响应(否则为0,2),这样我的终端就不会收到标准的“ ping统计信息,收到的数据包,数据包丢失”的垃圾邮件。我将如何执行此代码明智的工作?我不是在寻找终端/ bash的“方式”。
def ping():
hosts = open('hosts.txt', 'r')
for host_ip in hosts:
res = subprocess.call(['ping', '-c', '1', host_ip])
if res == 0:
print "ping to", host_ip, "OK"
elif res == 2:
print "no response from", host_ip
else:
print "ping to", host_ip, "failed!"
答案 0 :(得分:1)
我刚刚使用python的subprocess.Popen
类ping到Google dns服务器,除了我在代码中打印的返回码外,它什么都没有返回终端。
import subprocess
process = subprocess.Popen(['ping','-c' ,'1', '8.8.8.8'], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
stdout, stderr = process.communicate()
returncode = process.returncode
print(returncode)
输出
0