CSV files are commonly used to store tabular data. Python's built-in csv module makes reading and writing CSVs easy and flexible. Set it up by first importing it.
import csv
CSV files are commonly used to store tabular data. Python's built-in csv module makes reading and writing CSVs easy and flexible. Set it up by first importing it.
import csv
with open('file.csv', newline='') as file:
reader = csv.reader(file)
for row in reader:
print(row) # Row is a list of values
with open('file.csv', newline='') as file:
reader = csv.DictReader(file)
for row in reader:
print(row['column_name']) # Access values using column names
with open('file.csv', newline='') as file:
reader = csv.DictReader(file, delimiter=';')
for row in reader:
print(row)
predefined_empty_list = []
with open('file.csv', newline='') as f:
var2 = csv.DictReader(f)
for row in var2:
predefined_empty_list.append(row['rowtitle'])
Sometimes, you may read raw lines and split manually.
for line in open('file.csv'):
var1, var2 = line.rstrip().split(',') # Splits each line into two variables
big_list = [
{'key1': 'value1a', 'key2': 'value2a'},
{'key1': 'value1b', 'key2': 'value2b'},
# ...
]
with open('newfile.csv', 'w', newline='') as output_csv:
fields = ['key1', 'key2']
output_writer = csv.DictWriter(output_csv, fieldnames=fields)
output_writer.writeheader() # Writes the header row
for item in big_list:
output_writer.writerow(item)
with open('output.csv', 'w', newline='') as file:
writer = csv.writer(file)
writer.writerow(['value1', 'value2']) # Writes a single row
with open('output.csv', 'w', newline='') as file:
writer = csv.writer(file)
for key, value in some_dict.items():
writer.writerow([key, value])
| Code | Description |
|---|---|
import csv
|
Import the CSV module |
csv.reader(file)
|
Reads rows as lists |
csv.DictReader(file)
|
Reads rows as dictionaries using header row |
delimiter=';'
|
Specify a different delimiter |
csv.writer(file)
|
For writing rows (as lists) |
csv.DictWriter(file, fieldnames=[...])
|
For writing rows (as dictionaries) |
.writeheader()
|
Writes the column headers |
.writerow({...})
|
Writes a single row |
.split(',')
|
Splits a string into list values (manual approach) |