Reading Files in Python: read(), readline(), and readlines() Explained

Reading data from files is a common task in Python, especially when working with logs, datasets, or configuration files. Python offers three main methods for reading text from files:

  • read() – Reads the entire file
  • readline() – Reads one line at a time
  • readlines() – Reads all lines and returns them as a list

In this blog post, we'll walk through these three methods with simple examples to help you understand when and how to use each.

1. Preparing a Sample File

Let’s start by creating a sample file called sample.txt with a few lines of text:

with open("sample.txt", "w") as file:
    file.write("Python is easy to learn.\n")
    file.write("It is powerful and flexible.\n")
    file.write("File handling is essential.")

2. Using read() – Read Entire File

read() reads the entire contents of a file into a single string. This is useful when you want to process the full file content at once.

with open("sample.txt", "r") as file:
    content = file.read()
    print(content)

Output:

Python is easy to learn.
It is powerful and flexible.
File handling is essential.

3. Using readline() – Read One Line

readline() reads a single line from the file each time it is called. This is helpful when you need to process lines one by one, such as in a loop.

with open("sample.txt", "r") as file:
    line1 = file.readline()
    line2 = file.readline()

print("Line 1:", line1.strip())
print("Line 2:", line2.strip())

Output:

Line 1: Python is easy to learn.
Line 2: It is powerful and flexible.

4. Using readlines() – Read All Lines into a List

readlines() reads all the lines of a file and returns a list where each item is a line (including the newline character).

with open("sample.txt", "r") as file:
    lines = file.readlines()

print(lines)

Output:

[
  'Python is easy to learn.\n',
  'It is powerful and flexible.\n',
  'File handling is essential.'
]

You can loop through the list to process each line:

for line in lines:
    print(line.strip())

5. Comparing the Three Methods

Method Description Use Case
read() Reads the entire file as a single string When full content is needed at once
readline() Reads one line at a time Useful for line-by-line processing
readlines() Reads all lines into a list Best for looping through lines

6. Handling Large Files Efficiently

For large files, avoid using read() or readlines() unless necessary. Instead, read line-by-line using a loop:

with open("largefile.txt", "r") as file:
    for line in file:
        print(line.strip())

7. Final Thoughts

Understanding how to read files in Python using read(), readline(), and readlines() gives you the flexibility to handle text files efficiently, regardless of size or complexity. Choose the method that best fits your needs and always remember to open files with the with statement to ensure they're closed properly.