我想将输出保存在字符串变量中。 我的主要目标是检查不同的IP地址是打开还是关闭。但是,一个地址IP存在问题。确实,IP地址已关闭,但代码显示已启动。 我用cmd ping,这表明:无法到达目标主机 并说损失为0%。
所以,我想检测是否存在无法做出附加条件的世界。
我尝试了不同的库,但从未成功。
hostname = "192.168.1.2"
somevar = str(os.system("ping " + hostname))
print(somevar)
输出为0。 我想要的输出是: 发送ping请求...
答案 0 :(得分:0)
嗯,os.system
不会给您想要的输出。它仅返回ping命令(或任何其他命令)的退出代码。
如果要获取在控制台上看到的文本输出,请尝试 subprocess 模块。
import subprocess
import sys
hostname = "192.168.1.2"
cmd = subprocess.Popen(["ping", hostname], stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
# run command and save output and error msg
stdout, stderr = cmd.communicate()
# stderr is None -> everything is fine
if stderr == None:
print(stdout)
else:
print(stderr)
sys.exit(1)
这肯定不是您想要的,但是它可能使您了解如何解决问题。