Working with CSVs in Python

Core package

import csv

Read and write to CSV

Read

Use standard Pythonic “read” syntax:

with open('./path.csv', mode="r") as csv_file:
    reader = csv.reader(csv_file)

Parse values

Having created the reader object, you can then loop through this as an iterable:

for row in reader:
    print(row)

Will return something like:

column something, column something else, ...

Which we can individuate with:

print(row[0])
# column something

We can also parse the rows as a dictionary for easier individuation. We do this by creating a DictReader rather than the default reader:

...
dict_reader = csv.DictReader(csv_file)

Now we can use the header row values to individuate particular columns.

Say we have a CSV with the following headers:

name, profession

We can individuate thus:

for row in dict_reader
    name = row["name"]

Write

Use standard Pythonic “read” syntax:

with open('./new_csv_file.csv', mode="w") as csv_file:
    writer = csv.writer(csv_file)

The above will create the file as well, it doesn’t need to be pre-existing.

This creates the writer object. To actually write a row:

some_list = ['thomas', 'engineer']
for element in some_list:
    writer.writerow(element)