If I have a text file like this:
Hello World
How are you?
Bye World
How would I read it into a multidimensional array like this:
[["Hello", "World"],
["How", "are", "you?"],
["Bye" "World"]]
I have tried:
textFile = open("textFile.txt")
lines = textFile.readlines()
for line in lines:
line = lines.split(" ")
But it just returns:
["Hello World\n", "How are you?\n", "Bye World"]
How do I read the file into a multidimensional array?
解决方案
Use a list comprehension and str.split:
with open("textFile.txt") as textFile:
lines = [line.split() for line in textFile]
Demo:
>>> with open("textFile.txt") as textFile:
lines = [line.split() for line in textFile]
...
>>> lines
[['Hello', 'World'], ['How', 'are', 'you?'], ['Bye', 'World']]
It is good practice to use the with keyword when dealing with file
objects. This has the advantage that the file is properly closed after
its suite finishes, even if an exception is raised on the way. It is
also much shorter than writing equivalent try-finally blocks.