循环/读取文本文件无法按预期工作 - python 2.7

时间:2016-01-18 20:44:55

标签: python

我正在开发一个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')

1 个答案:

答案 0 :(得分:1)

该文件缺少换行符。

更正了文件和代码。