Last modified: May 10, 2025 By Alexander Williams
Python CSV Module for Data Processing
Python's CSV module is a built-in library for reading and writing CSV files. It simplifies data handling.
What is the CSV Module?
The CSV module provides tools to work with Comma-Separated Values files. These are common in data processing.
CSV files store tabular data in plain text. Each line is a record, and fields are separated by commas.
Importing the CSV Module
To use the CSV module, import it like any other Python library. No installation is needed.
import csv
This makes all CSV functions available. For more on imports, see our Python Import Statements Guide.
Reading CSV Files
Use csv.reader()
to read CSV data. It returns an iterable object.
with open('data.csv', 'r') as file:
reader = csv.reader(file)
for row in reader:
print(row)
['Name', 'Age', 'City']
['Alice', '24', 'New York']
['Bob', '30', 'Chicago']
The reader
object processes each row as a list. Headers are included.
Writing CSV Files
Use csv.writer()
to create CSV files. Open the file in write mode.
data = [['Name', 'Age'], ['Alice', 24], ['Bob', 30]]
with open('output.csv', 'w') as file:
writer = csv.writer(file)
writer.writerows(data)
This creates a file named output.csv with the provided data.
Working with Dictionaries
The CSV module can handle dictionaries. Use csv.DictReader()
and csv.DictWriter()
.
# Reading with DictReader
with open('data.csv', 'r') as file:
reader = csv.DictReader(file)
for row in reader:
print(row['Name'], row['Age'])
Alice 24
Bob 30
Dictionary methods make data access more intuitive. Fields are accessed by name.
Custom Delimiters and Dialects
CSV files can use different delimiters. Specify them in the reader or writer.
# Using a tab delimiter
with open('data.tsv', 'r') as file:
reader = csv.reader(file, delimiter='\t')
for row in reader:
print(row)
This handles tab-separated values (TSV) files. The same works for other delimiters.
Error Handling
Always handle file operations carefully. Use try-except blocks for robustness.
try:
with open('data.csv', 'r') as file:
reader = csv.reader(file)
for row in reader:
print(row)
except FileNotFoundError:
print("File not found")
except Exception as e:
print(f"Error: {e}")
This prevents crashes from missing files or invalid data.
Performance Considerations
For large files, consider these tips:
- Process data in chunks
- Use generator expressions
- Avoid loading entire files into memory
For heavy data work, see our Pandas library guide.
Conclusion
Python's CSV module is powerful for data processing. It handles reading, writing, and formatting with ease.
Start with basic reader
and writer
functions. Move to dictionary methods for clarity.
Remember error handling and performance for real-world use. For more on imports, check our Python Import System Guide.