Working with CSV Files
Learn to read and write structured data using CSV files.
Working with CSV Files is a free Learn AI with Python lesson on CoddyKit — lesson 2 of 3. You can read the complete lesson below for free — then practise it hands-on in the browser with a built-in code editor and a 24/7 AI tutor. It is part of the Learn AI with Python learning path, one of 3 lessons in the course, and your progress syncs across the web and the CoddyKit app.
1
Introduction to Working with CSV Files
CSV (Comma-Separated Values) files are a common format for storing tabular data. Python provides the csv module to read, write, and manipulate CSV files efficiently.
In this lesson, you’ll learn how to handle CSV files using Python’s built-in csv module.

2
What Are CSV Files?
CSV files are text files that use a delimiter (usually a comma) to separate values. Each line represents a row, and each value in the line represents a column.
3
Reading CSV Files
To read a CSV file, use the csv.reader function. This function reads each line as a list of values:
# Reading a CSV file
import csv
with open("data.csv", "r") as file:
reader = csv.reader(file)
for row in reader:
print(row) # Each row is a list of values4
Writing CSV Files
To write to a CSV file, use the csv.writer function. This function allows you to write rows to a CSV file:
# Writing to a CSV file
import csv
with open("output.csv", "w", newline="") as file:
writer = csv.writer(file)
writer.writerow(["Name", "Age", "City"])
writer.writerow(["Alice", 30, "New York"])
writer.writerow(["Bob", 25, "London"])5
Reading CSV Files with Headers
Use csv.DictReader to read CSV files into dictionaries, where the keys are the column headers:
# Reading a CSV file with headers
import csv
with open("data.csv", "r") as file:
reader = csv.DictReader(file)
for row in reader:
print(row) # Each row is a dictionary with column headers as keys6
Writing CSV Files with Headers
Use csv.DictWriter to write dictionaries into CSV files with headers:
# Writing a CSV file with headers
import csv
with open("output.csv", "w", newline="") as file:
fieldnames = ["Name", "Age", "City"]
writer = csv.DictWriter(file, fieldnames=fieldnames)
writer.writeheader() # Write the header row
writer.writerow({"Name": "Alice", "Age": 30, "City": "New York"})
writer.writerow({"Name": "Bob", "Age": 25, "City": "London"})7
Custom Delimiters in CSV Files
You can specify a custom delimiter when reading or writing CSV files. For example, tab-delimited files use a tab (\t) as the delimiter:
# Using a custom delimiter
import csv
with open("data.tsv", "r") as file:
reader = csv.reader(file, delimiter="\t")
for row in reader:
print(row) # Each row is split by tab8
Handling Large CSV Files
For large CSV files, use a loop to process rows incrementally, avoiding loading the entire file into memory:
# Reading a large CSV file efficiently
import csv
with open("large_data.csv", "r") as file:
reader = csv.reader(file)
for row in reader:
# Process each row
print(row)9
10
Common Mistakes with CSV Files
Here are some mistakes to avoid:
- Forgetting to use
newline=""when writing CSV files on Windows. - Using incorrect delimiters for non-standard CSV files.
- Not handling missing or malformed data in the file.
11
What Did We Learn?
In this lesson, you learned:
- How to read and write CSV files using Python’s
csvmodule. - How to work with CSV files that have headers using
DictReaderandDictWriter. - How to handle large CSV files efficiently.
Great job! Let’s move to the next topic.

Frequently asked questions
Is the “Working with CSV Files” lesson free?
Yes — the full text of “Working with CSV Files” is free to read here on the web, and the Learn AI with Python course includes 3 lessons in total. To practise it interactively (a built-in code editor and a 24/7 AI tutor) and unlock the rest of the Learn AI with Python course, upgrade to CoddyKit PRO.
What will I learn in “Working with CSV Files”?
Learn to read and write structured data using CSV files. You practise Learn AI with Python with hands-on code you run directly in the browser, and a 24/7 AI tutor answers your questions as you work through the lesson.
Do I need any experience to start Learn AI with Python?
No prior experience is required. Learn AI with Python on CoddyKit is structured for beginners through advanced learners; this is — lesson 2 of 3, so you can start here or from the beginning and move at your own pace.
How long does the “Working with CSV Files” lesson take?
Most CoddyKit lessons take about 5–10 minutes. Each one is bite-sized and interactive, so you make steady progress and pick up exactly where you left off across the web and the app.
Can I write and run code in this Learn AI with Python lesson?
Yes. Every Learn AI with Python lesson includes a built-in code editor, so you write and run real code right in your browser and get instant AI feedback — no local setup required.
All lessons in this course
- Reading and Writing Files
- Working with CSV Files
- Handling Exceptions in File I/O