【问题标题】:Save output python in string variable将输出python保存在字符串变量中
【发布时间】:2019-01-15 14:47:15
【问题描述】:
我想将我的输出保存在一个字符串变量中。
我的主要目标是检查不同的 IP 地址是向上还是向下。但是,一个地址IP存在问题。实际上,IP 地址已关闭,但代码显示已启动。
我用 cmd ping,这告诉我:无法到达目标主机
并说 0% 的损失。
所以,我想检测是否有世界无法做出额外的条件。
我尝试了不同的库,但没有成功。
hostname = "192.168.1.2"
somevar = str(os.system("ping " + hostname))
print(somevar)
输出为 0。
我希望输出为:
发送 ping 请求...
【问题讨论】:
标签:
python-3.x
string
variables
output
【解决方案1】:
好吧,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)
这肯定不是您想要的,但它可能会让您了解如何解决问题。