2014-09-23 185 views
0

所以我需要在Python分割清单,我的txt文件看起来是这样的:拆分Python的list成三个独立的名单

ip,user,password 
    ip,user,passord 

等。我已经阅读了列表,我可以将它分开,但我只会得到第一个IP。我希望能够将列表分成三个独立的列表,一个用于ip,用户和密码。这是我到目前为止的代码:

def OpenFile(): 
    read = [line.strip() for line in open("People.txt" , 'r') 
    return read 

jh = OpenFile() 
sp = [i.split(',',1)[0] for i in jh] 

回答

2

使用zip

>>> lines = ['ip,user,password', 'ip,user,passord'] 
>>> rows = [line.strip().split(',') for line in lines] # `lines` -> file object 
>>> rows 
[['ip', 'user', 'password'], ['ip', 'user', 'passord']] 
>>> zip(*rows) # Output will be different in Python 3.x 
[('ip', 'ip'), ('user', 'user'), ('password', 'passord')] 
>>> ip, user, password = zip(*rows) 
>>> ip 
('ip', 'ip') 
>>> user 
('user', 'user') 
>>> password 
('password', 'passord') 
3

您可以通过,割裂开来,然后zip分裂这样

with open("People.txt" , 'r') as inFile: 
    ips, users, passwords = zip(*[line.strip().split(",") for line in inFile]) 

列出了一起现在,如果你打印变量,你会得到

print ips, users, passwords 
('ip', 'ip') ('user', 'user') ('password', 'passord') 
+0

我得到的错误,“要解压缩,值错误的许多值” – 2014-09-23 15:03:49

+0

@aaronbill你确定你的文件没有什么比ip,用户和密码更多吗?你能否显示一些实际的数据? – thefourtheye 2014-09-23 15:05:14

+0

哦,对不起,我刚刚得到它,我改变它的格式,使其工作,非常感谢 – 2014-09-23 15:10:20