
Built-in csv module:
import csv
# Reading
with open("data.csv", "r") as f:
reader = csv.reader(f)
for row in reader:
print(row) # row is a list
# Reading with headers as dict
with open("data.csv", "r") as f:
reader = csv.DictReader(f)
for row in reader:
print(row["name"], row["age"])Writing:
data = [["Alice", 30], ["Bob", 25]]
with open("output.csv", "w", newline="") as f:
writer = csv.writer(f)
writer.writerow(["name", "age"]) # header
writer.writerows(data)
# Dict writer
with open("output.csv", "w", newline="") as f:
fields = ["name", "age"]
writer = csv.DictWriter(f, fieldnames=fields)
writer.writeheader()
writer.writerow({"name": "Alice", "age": 30})With pandas (easier for large files):
df = pd.read_csv("data.csv")
df.to_csv("output.csv", index=False)Reference:
TaskLoco™ — The Sticky Note GOAT