我有一个python3代码,使用命令ping检查ip主机访问 ip_host.txt包含ip:212.19.24.234和212.19.24.219。 如果我运行代码,我得到以下结果: ['212.19.24.219 \ n - 已关闭'] ['212.19.24.234 - 正在上升']
如果我使用cmd-ping检查:212.19.24.234和212.19.24.219已启动。 但我在代码中找不到错误? 请帮帮我
import subprocess
fp = open('ip_host.txt')
for ip in fp.readlines():
response = subprocess.Popen(["ping.exe",ip])
response.wait()
result = []
if response.poll():
res = (ip + " - is down")
else:
res = (ip + " - is up")
result.append(res)
print(result)
答案 0 :(得分:0)
(此处最重要的问题)ip
将保存您文件中的行。这包括您应使用str.strip
/ str.rstrip
删除的换行符。
您还可以在打开文件时使用with...as
,这样您就不必担心以后关闭它们了。
with open('ip_host.txt') as fp:
for line in fp:
res = subprocess.Popen(["ping.exe", line.rstrip()])
...
strip
和rstrip
之间的唯一区别是后者仅删除尾随空格。如果您也有前导空格,请使用strip
。