Working with CSV Data
CSV (Comma-Separated Values) files are used for spreadsheet data, logs, and data exports. Python's csv module handles reading and writing CSV efficiently.
15 min•By Priygop Team•Updated 2026
CSV in Python
CSV in Python
import csv
import io
# Write CSV (using StringIO for demo)
output = io.StringIO()
writer = csv.writer(output)
writer.writerow(["Name", "Age", "City"])
writer.writerow(["Alice", 25, "Mumbai"])
writer.writerow(["Bob", 30, "Delhi"])
writer.writerow(["Charlie", 28, "Bangalore"])
csv_content = output.getvalue()
print("=== CSV Output ===")
print(csv_content)
# Read CSV
input_data = io.StringIO(csv_content)
reader = csv.reader(input_data)
header = next(reader)
print(f"Columns: {header}")
for row in reader:
print(f" {row[0]}, age {row[1]}, from {row[2]}")
# DictReader — access by column name
input_data2 = io.StringIO(csv_content)
dict_reader = csv.DictReader(input_data2)
print("\n=== DictReader ===")
for row in dict_reader:
print(f" {row['Name']} lives in {row['City']}")
# Practical: data analysis
input_data3 = io.StringIO(csv_content)
ages = []
for row in csv.DictReader(input_data3):
ages.append(int(row['Age']))
print(f"\nAvg age: {sum(ages)/len(ages):.1f}")Tip
Tip
Use csv.DictReader for column-name access. It's much cleaner than csv.reader with index-based access.
Diagram
Loading diagram…
undefined/functions dropped. Always try/catch parse.
Common Mistake
Warning
Forgetting to skip the header row with csv.reader. Use next(reader) to skip it, or use DictReader which handles it automatically.
Practice Task
Note
(1) Write and read a CSV file. (2) Use DictReader to access by column name. (3) Calculate statistics from CSV data.