使用python将文本文件分成2个列表

时间:2015-03-18 09:10:19

标签: python list ip iteration

我有一个包含IP地址和端口列表的文本文件,其组织如下:

IP Port

例如:

212.212.212.212 80
111.111.111.111 8080

我已经使用' open'打开了python文件。函数和使用的readlines(),我得到的是:

['xxx.xxx.xxx.xxx xxx\n','yyy.yyy.yyy.yyy yyy\n'...]

如何将其划分为2个python列表,其中一个包含IP' s,另一个包含Port'

感谢您的回答!!

4 个答案:

答案 0 :(得分:0)

您可以使用generator-expressionszip内置函数来实现此目的。

data = ['212.212.212.212 80\n','111.111.111.111 8080\n']
result = zip(*((i.split()[0],i.split()[1]) for i in data))
print result[0], result[1]

收率:

('212.212.212.212', '111.111.111.111') ('80', '8080')

答案 1 :(得分:0)

简单使用split()

l=[]
y=[]
for x in f.readlines():
    l.append(x.split()[0])   #list of ip addresses
    y.append(x.split()[1])   #list of ports

编辑:

x=['xxx.xxx.xxx.xxx xxx\n','yyy.yyy.yyy.yyy yyy\n']
l=[]

for i in x:
    l.append(i.split()[1])
print l

答案 2 :(得分:0)

ips = []
ports = []
f = file('datafile.txt')
for line in f.readlines():
    ip,port = line.strip().split()
    ips.append(ip)
    ports.append(port)
f.close()

答案 3 :(得分:0)

您可以使用split()

ipList = []
portList = []
F = open('inp.txt','r')
for line in F:
    ip, port = line.split()
    ipList.append(ip)
    portList.append(port)