Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Reading a file into a multidimensional array with Python

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?

like image 811
LazySloth13 Avatar asked Sep 27 '13 16:09

LazySloth13


1 Answers

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']]

with statement:

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.

like image 189
Ashwini Chaudhary Avatar answered Oct 05 '22 21:10

Ashwini Chaudhary