我在python 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
如何解决?
答案 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")