我正在开发一个ping服务器列表的程序,并会发送一个包含任何失败列表的通知。但是,我一直在创建列表。这是我下面的代码,用于读取文本文件,拉出IP和服务器名称。我的ping函数循环遍历此列表。 目前,我的打印行显示列表中的最后一个IP,ip_list仅包含列表中的第一个IP。我不确定我做错了什么。
ip_list = list()
with open('servers.txt', 'rb') as infile :
for line in infile:
print line
full_line = line.rstrip()
info = full_line.split()
IP = info[0]
server = info[3]
ip_list.append((IP, server))
print ip_list
我不确定如何显示输入。它是一个包含30行的文本文件,格式如下:
10.14.12.61 Pointer(PTR)server1.xxxxx.com。 ?1 /?15 /?2016 2:00:00 AM
打印行语句给出了我(文件的最后一行):
192.168.1.90 Pointer(PTR)server30.gb.xxxx.com。静态
print ip_list给我这个(文件的第一行):
[(' 10.14.12.61',' server1.xxxx.com。')]
我对ip_list的预期结果是30行的列表,提取IP和服务器名称。看起来它正在从文本行中提取正确的信息,但仅适用于第一行。不过,该计划正在阅读最后一行。
所以ip_list将是
('10.14.12.61', 'server1.xxxxx.com')
('192.168.1.212', 'server2.xxxxx.com')
('192.168.1.229', 'server3.xxxxx.com')
('192.168.1.90', 'server30.xxxxx.com')
答案 0 :(得分:1)
该文件缺少换行符。
更正了文件和代码。