CSV stands for comma-separated values and CSV files are files with comma-separated values. It is a plain text-based file with data items delimited with commas.
Though values are separated with commas in csv somethings any characters including tabs can be used as a delimiter.
To work with csv files in Python, you have to use the csv module.
Reading csv files
Let’s see how to read values in a csv file using the reader method.
import csv
file = open('data.csv', 'r')
reader = csv.reader(file)
for row in reader:
print(row)
#outputs
# ['1', '2', '3', '4', '5']
# ['6', '7', '8', '9', '10']
# ['11', '12', '13', '14', '15']
In the case where the csv has a tab delimiter, you can read the csv file thus:
reader = csv.reader(file, delimiter='\t')
Writing csv files
To create or modify a csv file, the csv.writer() method is used. The syntax is shown below:
file = open('data2.csv', 'w', newline='')
Then write the content using the writerow() method or writerows() method.
file = open('data.csv', 'w', newline='')
writer = csv.writer(file)
writer.writerow([1,2,3])
file.close()
You might as well write multiple rows at once using the writerows() method which accepts nested lists.
content = [['Fruit 1', 'Fruit 2', 'Fruit 3'], ['Apple', 'Orange', 'Mango']]
with open('data.csv', 'w', newline='') as file:
writer = csv.writer(file, delimiter=',')
writer.writerows(content)
DictReader() method
This method is used to read a csv file but maps the information read as a dictionary.
file = open('data.csv', 'r')
reader = csv.DictReader(file)
for row in reader:
print(row)
#outputs
# {'Fruit 1': 'Apple', 'Fruit 2': 'Orange', 'Fruit 3': 'Mango'}
# {'Fruit 1': 'Pineapple', 'Fruit 2': 'Pawpaw', 'Fruit 3': 'Grape'}
DictWriter()
This method is used to write a dictionary into a csv file.
labels = ['color1', 'color2']
file = open('data.csv', 'w', newline='')
writer = csv.DictWriter(file, fieldnames=labels)
writer.writeheader()
writer.writerow({'color1':'green', 'color2':'purple'})
writer.writerow({'color1':'orange', 'color2':'white'})
writer.writerow({'color1':'violet', 'color2':'red'})
file.close()
file = open('data.csv', 'r', newline='')
reader = csv.DictReader(file)
for row in reader:
print(row)
#outputs
# {'color1': 'green', 'color2': 'purple'}
# {'color1': 'orange', 'color2': 'white'}
# {'color1': 'violet', 'color2': 'red'}


