写入结果时错误ping主机到文件

时间:2017-12-10 02:57:16

标签: python

我在python 3中编写了一些代码来执行这些操作:

  1. 读取主机文件并执行ping每个主机
  2. 写入无法访问的IP主机文件
  3. import subprocess
    fp = open('ip_host.txt') # open file ip host
    text_file = open("result_ping.txt", "w") # open file result ping host 
    
    for ip in fp.readlines():
        response = subprocess.Popen(["ping.exe",ip])
    response.wait()
    
    result = []
    if response.poll():
        res_down = (ip + " - is down")
    else:
        res_up = (ip + " - is up")
    
        result.append(res_down)
    text_file.write(result)
    
    fp.close() 
    text_file.close()
    

    但执行代码时显示错误:

        result.append(res_down)
    NameError: name 'res_down' is not defined
    

    如何解决?

1 个答案:

答案 0 :(得分:0)

总的来说,您可以大大清理代码。

另外,我认为您应该等待每个IP ,而不是等待文件中的最后一行。

import subprocess
with open('ip_host.txt') as fp, open("result_ping.txt", "w") as text_file:
    for ip in fp:
        response = subprocess.Popen(["ping.exe",ip])
        response.wait()

        if response.poll():
            text_file.write(ip + " - is down")
        else:
            res_up = (ip + " - is up")
        text_file.write("\n")