Pythononly ping 2个IP中的1个(子进程)

时间:2015-11-22 23:12:59

标签: python-2.7 subprocess ping

我正在尝试制作一个PY 2.7.x代码,应该ping几个地址 我有一个列表,其中包含两个IP添加。但是只有最后一个被捏了?

import subprocess

ip = ["10.0.2.5", "8.8.8.8"]
for i in range(len(ip)):
    ping_process = subprocess.Popen(['ping', '-c', '1'] + ip, stdout=subprocess.PIPE)
    stdout = ping_process.stdout.read()
    print stdout

1 个答案:

答案 0 :(得分:0)

首先,您尝试将字符串添加到列表中,但这不起作用。

>>> ["23123"] + "4234"
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: can only concatenate list (not "str") to list

您需要使用.append()来添加元素,但在这种情况下,只需在创建元素时使用该元素。

对于更好的变量名称,可能从未遇到过这个问题,请考虑以下内容。

import subprocess

list_of_ips = ["10.0.2.5", "8.8.8.8"]
for ip in list_of_ips:
    ping_process = subprocess.Popen(['ping', '-c', '1', ip], stdout=subprocess.PIPE)
    stdout = ping_process.stdout.read()
    print stdout