Read and Write CSV Files in Python
CSV stands for Comma Separated Values. It is a standard text file in which values are separated by commas.
Python provides csv built-in module that implements classes to read and write tabular data in CSV format.
Reading a CSV File
To read a CSV file in Python, you must first import the csv module of Python, open the file using the open() function, and read the file using the csv module's reader() method. For example:
import csv
file_not_found = False
file = "test.csv"
try:
with open(file, 'r') as csvfile:
csvreader = csv.reader(csvfile)
#Read first row field names
fields = next(csvreader)
print(fields)
rows = []
#Read csv data row by row
for row in csvreader:
rows.append(row)
print("Total number of data: %d" % (csvreader.line_num))
print("Complete...")
except FileNotFoundError as ex:
print("Error File not found:" + str(ex))
file_not_found = True
finally:
if not file_not_found:
print("Closing file...")
csvfile.close()
Writing to a CSV file
The csv module's writer() method returns a writer object. This writer object has methods such as writerow() and writerows() to write the user's data into the csv file. For example:
import csv
file = "test2.csv"
with open(file, mode='w') as csvfile:
csvwriter = csv.writer(csvfile, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL)
csvwriter.writerow(['Jonny', 'Programming', 'A'])
csvwriter.writerow(['Joe', 'Engineering', 'B'])
csvwriter.writerow(['Danny', 'Scientist', 'C'])
csvwriter.writerow(['Leni', 'Doctor', 'D'])
print("Complete...")