Python open() Function Tutorial — Read, Write & Manage Files Like a Pro
Last updated 5 months, 1 week ago | 376 views 75 5

Working with files is a fundamental skill for every Python developer. Whether you want to read from a file, write logs, or manage datasets, Python’s built-in open()
function is the key.
This tutorial will teach you:
-
What the
open()
function is and how it works -
File modes (read, write, append, etc.)
-
How to read and write files
-
Best practices using the
with
statement -
Common mistakes and how to avoid them
-
A complete real-world example
What is the open()
Function?
The open()
function opens a file and returns a file object, which gives you access to methods like .read()
, .write()
, .close()
and more.
Syntax:
open(file, mode='r', encoding=None)
-
file
: The name (or path) of the file to open -
mode
: The file access mode (default is'r'
for read) -
encoding
: Optional, but usually set to"utf-8"
for text files
File Modes Explained
Mode | Description |
---|---|
'r' |
Read (default). File must exist. |
'w' |
Write. Creates new or truncates existing file. |
'a' |
Append. Creates file if it doesn't exist. |
'x' |
Create. Fails if file already exists. |
'b' |
Binary mode (e.g., 'rb' , 'wb' ) |
't' |
Text mode (default) |
'+' |
Read and write combined ('r+' , 'w+' , etc.) |
You can combine modes like
'rb'
,'w+'
,'a+'
etc.
✏️ Writing to a File in Python
Using 'w'
mode — Overwrites the file
with open("example.txt", "w") as file:
file.write("Hello, world!\n")
file.write("This is a new line.")
This will create example.txt
if it doesn’t exist, or overwrite it if it does.
Using 'a'
mode — Appends to the file
with open("example.txt", "a") as file:
file.write("\nAppended line.")
Reading from a File in Python
1. .read()
— Read the entire file as a single string
with open("example.txt", "r") as file:
content = file.read()
print(content)
2. .readline()
— Read one line at a time
with open("example.txt", "r") as file:
line = file.readline()
print(line)
3. .readlines()
— Read all lines as a list
with open("example.txt", "r") as file:
lines = file.readlines()
for line in lines:
print(line.strip())
✅ Why Use the with
Statement?
Using with open(...)
automatically:
-
Opens the file
-
Closes the file (even if an error occurs)
-
Is cleaner and safer than manually using
.close()
Example:
with open("file.txt", "r") as f:
data = f.read()
# No need to call f.close()
Complete Example: File Logger
Let’s create a logger that writes and reads logs from a file.
def log_event(message):
with open("log.txt", "a") as f:
f.write(message + "\n")
def read_log():
try:
with open("log.txt", "r") as f:
print("Log Contents:")
print(f.read())
except FileNotFoundError:
print("No log file found.")
# Usage
log_event("Application started")
log_event("User logged in")
read_log()
Sample Output:
Log Contents:
Application started
User logged in
Pro Tips for Using open()
-
✅ Always use
with
to handle files safely -
✅ Use
encoding="utf-8"
for text files to support special characters -
✅ Check if a file exists with
os.path.exists()
before reading -
✅ Prefer
'a'
mode when logging to avoid overwriting old data
⚠️ Common Pitfalls and Mistakes
Mistake | Why it’s a Problem | Solution |
---|---|---|
Forgetting to close the file | Can cause memory leaks or file locks | Use with open() |
Using 'w' when you mean 'a' |
Overwrites the file | Be careful with write mode |
Reading a binary file in text mode | File content will be corrupted | Use 'rb' or 'wb' |
Writing non-strings | Raises TypeError | Convert with str() or use formatted strings |
Summary
Task | Code Example |
---|---|
Open file | open("file.txt", "r") |
Read file | .read() , .readline() , .readlines() |
Write file | .write() , .writelines() |
Safely open file | with open(...) as f: |
Check if file exists | os.path.exists("file.txt") |
Final Thoughts
Python’s open()
function is powerful yet simple. With a good understanding of modes and best practices like using with
, you can confidently handle files in any project—logs, config files, data import/export, and more.