In Python, reading from files is one of the most fundamental tasks in file handling. Python provides multiple ways to read the contents of a file, such as using read()
, readline()
, and readlines()
methods. This guide will walk you through the process of reading files, explain the different methods available, and provide examples and use cases.

Opening a File for Reading
To read from a file, you first need to open the file using the open()
function. The mode used for reading is "r"
, which stands for read mode. If the file does not exist, Python will raise a FileNotFoundError
.
file = open("filename.txt", "r") # Open file in read mode content = file.read() # Read the content of the file file.close() # Close the file
The above code reads the entire content of the file and stores it in the variable content
.The file is then closed to ensure the file handle is released.
File Modes for Reading
When opening a file for reading, the mode you choose determines how you interact with the file:
"r"
: Read mode. This is the default mode. If the file does not exist, it will raise aFileNotFoundError
."rb"
: Read in binary mode. This is used to read binary files (e.g., images, videos)."rt"
: Read in text mode (default)."r+"
: Read and write mode. The file must exist for this mode to work.
Reading the Entire File
To read the entire content of a file at once, use the read()
method:
# Example 1: Reading the Entire File with open("sample.txt", "r") as file: content = file.read() print(content)
Explanation:
- The
read()
method reads the entire content of the file and stores it in the variablecontent
. - The
with
statement ensures the file is closed automatically after reading.
Reading Line by Line
If you want to read the file line by line, use the readline()
method. This method returns one line from the file each time it’s called.
# Example 2: Reading Line by Line with open("sample.txt", "r") as file: line = file.readline() while line: print(line, end="") # Print each line without adding extra newline line = file.readline()
Explanation:
- The
readline()
method reads one line at a time. - A
while
loop is used to read the next line until there are no more lines left.
Reading All Lines at Once
To read all lines from a file into a list, use the readlines()
method. Each line is stored as an element in the list.
# Example 3: Reading All Lines into a List with open("sample.txt", "r") as file: lines = file.readlines() # Print each line separately for line in lines: print(line, end="")
Explanation:
- The
readlines()
method reads all lines from the file and stores them in a list. - Each line becomes an element in the list, which can be iterated over.
Handling Large Files
When dealing with large files, reading the entire file into memory at once may not be efficient. In such cases, reading the file in chunks or line by line is recommended to avoid memory issues.
Reading in Chunks
You can read the file in fixed-size chunks using the read(size)
method. This method reads a specified number of bytes.
# Example 4: Reading a File in Chunks with open("large_file.txt", "r") as file: chunk = file.read(1024) # Read the first 1024 bytes while chunk: print(chunk) chunk = file.read(1024) # Read the next 1024 bytes
Explanation:
- This example reads the file in 1024-byte chunks.
- The
read()
method keeps reading until the end of the file is reached.
Error Handling in File Reading
When working with files, it’s essential to handle potential errors, such as a missing file or incorrect file permissions. Use a try-except
block to manage such errors gracefully.
# Example 5: Error Handling While Reading a File try: with open("sample.txt", "r") as file: content = file.read() print(content) except FileNotFoundError: print("The file does not exist.") except IOError: print("An error occurred while reading the file.")
Explanation:
- If the file doesn’t exist, the program will print a message saying the file is missing.
- If there’s an input/output error (e.g., permission issues), an appropriate error message will be displayed.
Mini Project: Reading and Processing Log Files
In this mini-project, we will read a log file and process the log entries. The goal is to filter out only the error messages and print them.
# Mini Project: Filter and Print Error Messages from Log File def filter_errors(filename): with open(filename, "r") as file: lines = file.readlines() # Filter lines that contain the word "ERROR" error_lines = [line for line in lines if "ERROR" in line] # Print each error line for error in error_lines: print(error, end="") # Run the function with a sample log file filter_errors("server_log.txt")
Explanation:
- The
filter_errors()
function reads all lines from the log file and filters out those that contain the word"ERROR"
. - The filtered error lines are then printed.
Interview Questions and Answers on File Reading
Amazon
Q1: What are the different methods available in Python for reading a file?
A1: In Python, the main methods for reading files are read()
, readline()
, and readlines()
. The read()
method reads the entire file, readline()
reads one line at a time, and readlines()
reads all lines into a list.
Q2: How do you handle reading large files that may not fit into memory?
A2: To read large files efficiently, you can read them in chunks using read(size)
or line by line using readline()
. This way, only a small portion of the file is kept in memory at any time.
Zoho
Q3: What happens if you try to read from a file that does not exist?
A3: If you try to read from a non-existent file, Python will raise a FileNotFoundError
. You can handle this using a try-except
block to catch the error and display a user-friendly message.
Infosys
Q4: Can you read binary files using Python?
A4: Yes, you can read binary files using the "rb"
mode. This mode reads the file as binary data, which is useful for non-text files like images, videos, and audio files.
TCS
Q5: How would you handle an IOError while reading a file?
A5: You can handle an IOError
using a try-except
block. If an error occurs while reading the file (e.g., due to permissions), the program can catch the error and display a message without crashing.
Conclusion
Reading files in Python is a fundamental skill that every Python developer should master. By understanding the different methods and best practices, you can efficiently handle text and binary files of all sizes. Whether you’re processing log files, reading data for analysis, or simply opening files for review, Python makes file handling straightforward. Remember to handle errors and manage file resources properly to avoid common pitfalls.
Read Files
Question
Your answer:
Correct answer:
Your Answers