2014-09-23 76 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