如何使用python只读取第一行ping结果?在读取ping结果时,python返回多行。所以我想知道如何阅读和保存第一行输出?代码不仅应该用于ping,而且应该适用于像“ifstat”这样的工具,这会再次返回多行结果。
答案 0 :(得分:2)
使用subprocess.check_output运行命令,并返回第一个splitlines():
import subprocess
subprocess.check_output(['ping', '-c1', '192.168.0.1']).splitlines()[0]
安德烈亚斯
答案 1 :(得分:0)
您可以使用subprocess.check_output
和str.splitlines
。这里subprocess.check_output
运行命令并以字符串形式返回输出,您可以使用str.splitlines()[0]
获取第一行。
>>> import subprocess
>>> out = subprocess.check_output('ping google.com -c 1', shell=True)
>>> out.splitlines()[0]
'PING google.com (173.194.36.78) 56(84) bytes of data.'
请注意,使用shell=True
运行不受信任的命令可能会很危险。所以,更好的方法是:
>>> import shlex
>>> command = shlex.split('ping google.com -c 1')
>>> out = subprocess.check_output(command)
>>> out.splitlines()[0]
'PING google.com (173.194.36.65) 56(84) bytes of data.'
答案 2 :(得分:0)
如果你有str变量ping_result的输出,请先在数组http://docs.python.org/2/library/stdtypes.html#str.split中进行拆分和访问。像这样:
first_line = ping_result.split(' \ n')[0]