将输出python保存在字符串变量中

时间:2019-01-15 14:47:16

标签: python-3.x string variables output

我想将输出保存在字符串变量中。 我的主要目标是检查不同的IP地址是打开还是关闭。但是,一个地址IP存在问题。确实,IP地址已关闭,但代码显示已启动。 我用cmd ping,这表明:无法到达目标主机 并说损失为0%。

所以,我想检测是否存在无法做出附加条件的世界。

我尝试了不同的库,但从未成功。

hostname = "192.168.1.2"
somevar = str(os.system("ping " + hostname))
print(somevar)

输出为0。 我想要的输出是: 发送ping请求...

1 个答案:

答案 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)

这肯定不是您想要的,但是它可能使您了解如何解决问题。