說我有一個包含以下內容的文本文件:如何將每個文本文件行分隔爲單獨的列表?
Bob 15 M
John 16 M
Jen 15 F
我如何把它變成一個列表,該列表值:
listOne = ['Bob', '15', 'M']
listTwo = ['John', '16', 'M']
listThree = ['Jen', '15', 'F']
感謝
說我有一個包含以下內容的文本文件:如何將每個文本文件行分隔爲單獨的列表?
Bob 15 M
John 16 M
Jen 15 F
我如何把它變成一個列表,該列表值:
listOne = ['Bob', '15', 'M']
listTwo = ['John', '16', 'M']
listThree = ['Jen', '15', 'F']
感謝
只是拆分它並將其解壓縮
bob, john, jen = [a.split() for a in open(file)]
非常好的一點。雖然它會被垃圾收集並關閉,但我們無法總是依靠解釋器來做到這一點 – danidee
在CPython中,它通常會立即被垃圾收集;在其他Python實現中,它可能會停留一段時間。 –
用打開文件和分割():
with open('text.txt') as f:
strings = f.readlines()
data = [string.split() for string in strings]
不需要字符串。只需遍歷文件對象。 –
with open('text.txt') as file:
lines = file.readlines() # Creates a list of lines
for line in lines:
line = line.split() # Split each line into list of "words"
這給你一個嵌套列表這可能是明智的。如果你迫切想3所列出,使用此:
evalvar = ""
count = 0
for line in lines:
count += 1
evalvar += "list"+str(count)+" = "+str(line)+";"
exec(evalvar) # Runs the evalvar which has
# code in it.
您可以在文件中適用string.split
每一行:
import string
with open('text.txt') as text:
result = map(string.split, text)
使用Python 3,您需要兌現的map
,否則文件沒有按之前它關閉「噸得到閱讀:
result = list(map(string.split, text))
然而,string.split
已被廢棄,只適用於str
對象,正ot unicode
。一個更普遍的解決方案是創建一個列表理解:
result = [line.split() for line in text]
[字符串分割到Python的list(的可能的複製http://stackoverflow.com/questions/743806/split-string-into-a-列表在蟒蛇) –
你想3列表? – Tim
@PeterWood雅,Forgeted。 –