CSV Basics
CSV (Comma-Separated Values) is one of the most common file formats in the world. When you download data from a bank statement, Google Sheets, or a government data portal, it often comes as a .csv file.
What Does a CSV File Look Like?
Name,Age,City
Rahul,22,Hyderabad
Priya,20,Bangalore
Sai,23,Vizag
Each line is a row. Values within a row are separated by commas. The first row is usually the header.
Reading CSV Files
Python has a built-in csv module (no installation needed):
import csv
with open("students.csv", "r") as file:
reader = csv.reader(file)
for row in reader:
print(row)
# Output:
# ['Name', 'Age', 'City']
# ['Rahul', '22', 'Hyderabad']
# ['Priya', '20', 'Bangalore']
# ['Sai', '23', 'Vizag']
Each row is returned as a list of strings.
Writing CSV Files
import csv
students = [
["Name", "Age", "City"],
["Rahul", 22, "Hyderabad"],
["Priya", 20, "Bangalore"],
["Sai", 23, "Vizag"]
]
with open("output.csv", "w", newline="") as file:
writer = csv.writer(file)
writer.writerows(students)
print("CSV file created!")
Why
newline=""?On Windows, without newline="", Python adds extra blank lines between rows. This parameter prevents that.
Reading CSV as Dictionaries
For easier access by column name, use DictReader:
import csv
with open("students.csv", "r") as file:
reader = csv.DictReader(file)
for row in reader:
print(f"{row['Name']} is from {row['City']}")
# Output:
# Rahul is from Hyderabad
# Priya is from Bangalore
# Sai is from Vizag
Quick Summary
- CSV Format: Comma-Separated Values for storing tabular datasets.
csv.reader(file): Reads rows as lists of string values.csv.DictReader(file): Reads rows as dictionaries using the header line for keys.csv.writer(file)&writerow(): Writes list rows to disk.- Windows Formatting: Always pass
newline=''toopen()when writing CSVs on Windows to avoid unwanted blank rows.
What's Next?
Now that you can work with text and CSV files, let's learn how to process web and AI data in Module 15b: JSON!