Comprehensive Guide to File Operations in Python
This article provides a thorough introduction to Python file operations, covering opening modes, reading and writing techniques, context managers, advanced handling like binary files and CSV processing, best practices, and practical exercises to master file I/O.
File operations are an essential skill in Python programming for data processing, logging, and configuration management.
1. Basics of File Operations
1. Opening a File
In Python, the open() function is used to open a file:
file = open('example.txt', 'r') # Open file in read modeThe open() function accepts two main arguments: the file name (including path) and the opening mode (default is 'r' for read).
File name (including path)
Opening mode (default 'r' for read)
2. File Opening Modes
Mode
Description
'r'
Read (default)
'w'
Write (overwrites existing file)
'x'
Exclusive creation (fails if file exists)
'a'
Append (adds content at the end)
'b'
Binary mode
't'
Text mode (default)
'+'
Update (read and write)
2. File Reading Operations
1. Read the Entire File
with open('example.txt', 'r') as file:
content = file.read()
print(content)2. Read Line by Line
with open('example.txt', 'r') as file:
for line in file:
print(line, end='') # end='' avoids extra newline3. Read a Specific Number of Bytes
with open('example.txt', 'r') as file:
chunk = file.read(100) # Read first 100 characters
print(chunk)4. Read All Lines into a List
with open('example.txt', 'r') as file:
lines = file.readlines()
for line in lines:
print(line, end='')3. File Writing Operations
1. Write a String
with open('output.txt', 'w') as file:
file.write("Hello, Python!\n")
file.write("This is a file writing example.\n")2. Write Multiple Lines
lines = ["First line\n", "Second line\n", "Third line\n"]
with open('output.txt', 'w') as file:
file.writelines(lines)3. Append Content
with open('output.txt', 'a') as file:
file.write("This line will be appended.\n")4. Context Manager (Recommended Usage)
Using the with statement ensures that a file is properly closed even if an exception occurs:
with open('example.txt', 'r') as file:
data = file.read()
# Process file content
# File is automatically closed here5. Advanced File Operations
1. File Pointer Manipulation
with open('example.txt', 'r+') as file:
# Get current pointer position
position = file.tell()
print(f"Current position: {position}")
# Read first 10 characters
data = file.read(10)
print(data)
# Move pointer to the beginning
file.seek(0)
# Write at the beginning
file.write("Start of file\n")2. Binary File Handling
with open('source.jpg', 'rb') as src, open('copy.jpg', 'wb') as dst:
dst.write(src.read())3. CSV File Processing
import csv
# Write CSV file
with open('data.csv', 'w', newline='') as file:
writer = csv.writer(file)
writer.writerow(['Name', 'Age', 'City'])
writer.writerow(['Alice', 25, 'New York'])
writer.writerow(['Bob', 30, 'Chicago'])
# Read CSV file
with open('data.csv', 'r') as file:
reader = csv.reader(file)
for row in reader:
print(row)6. Common Issues and Best Practices
File encoding: specify encoding (prefer UTF‑8).
Large file handling: avoid loading the entire file; read line by line or in chunks.
File path handling: use os.path for cross‑platform paths.
Temporary files: use the tempfile module.
7. Practical Exercises
Exercise 1: File Content Statistics
Total character count
Total line count
Word frequency
Exercise 2: Log File Analysis
Count occurrences of different status codes
Find the IP address with the most requests
Extract error messages
Exercise 3: Configuration File Handler
Read INI‑format configuration files
Modify configuration items
Save the updated configuration
Conclusion
Mastering Python file operations is a fundamental skill for developers. Remember to always use context managers, handle file encoding correctly, process large files in a streaming fashion, and manage file paths responsibly.
php中文网 Courses
php中文网's platform for the latest courses and technical articles, helping PHP learners advance quickly.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.