Reading a text file is a vital part in programming. Mostly when a file is read, its contents are stored in a data structure such as an array, list, map etc. This post will detail out various methods to read a text file line by line and store its contents directly into a list in python.
For a deep understanding about reading and writing files in python, refer this tutorial
Text file that we will be using as an example in this post is named “codippa.txt” and contains following sample content
Hello there
This is python
Learning from codippa.com
Method 1: Using readlines()
Open a file in read mode and read its contents using readlines()
method directly into a list.
# open file in read mode with open("codippa.txt", 'r') as file_handle: # read file content into list lines = file_handle.readlines() # print list content print(lines)
This method will contain a new line character after each list item as shown in the output below.
If you want to remove new line character at the end of each item, then iterate over the list and remove new line character using strip
method as below.
lines = [line.strip() for line in lines]
Reading file using with
and as
keywords as with open("codippa.txt", 'r') as file_handle:
provides the advantage that file is closed automatically once the task completes. You can also read a file as file_handle = open("f:/linkedFile.txt", 'r')
but then you will have to close it manually.
Method 2: Using read() and splitlines()
Read the file contents into a list using read
method of file object. This method reads the file as it is. For converting file contents into a list, splitlines
method is used. This method divides the contents of the file at each line break and inserts each item into a list.
Python docs for splitlines
method state
Return a list of the lines in S, breaking at line boundaries.
Line breaks are not included in the resulting list
# open file in read mode with open("codippa.txt", 'r') as file_handle: # convert file contents into a list lines = file_handle.read().splitlines() print(lines)
Output is
Note that there is no new line character at the end.
Method 3: Using append()
Open the file for reading. Iterate over the file content line by line using a for
loop. In every iteration, add the current line into a list using its append
method.
with open("codippa.txt", 'r') as file_handle: # initialize list lines = [] # iterate over file contents for line in file_handle: # add line to list lines.append(line.strip())
Note the strip()
called on the line. This is required to remove new line character from the end of line.
Output is
Method 4: Using iteration
There is another approach to convert file contents into a list by using for loop. This method is simpler as compared to above method.
with open("f:/linkedFile.txt", 'r') as file_handle: lines = [line.strip() for line in file_handle]
Iterate over file line by line and add it directly to a list. strip
function is required to remove new line character from each line. Output is
Method 5: Using list function
list function takes an iterable object as argument. It list
function returns a list with the contents of the iterable supplied to it as an argument. Python docs for list
function state
list(iterable) -> new list initialized from iterable’s items
Example for this approach is given below
with open("codippa.txt", 'r') as file_handle: lines = list(file_handle) # print list content print(lines)
Output of above code execution is
That’s it on converting a file into a list. Hope it was useful.