For writing a CSV file, the CSV module provides two different classes writer and Dictwriter. Here we will discuss 2 ways to perform this task effectively. The First will be ‘append a list as a new row to the existing CSV file‘ and second way is ‘Append a dictionary as a new row to the existing CSV file.’
First, let’s have a look at our existing CSV file contents.
event.csv
Append a new row to the existing CSV file using writer
let’s see how to use the writer class to append a list as a new row into an existing CSV file.
- Open your existing CSV file in append mode Create a file object for this file.
- Pass this file object to csv.writer() and get a writer object.
- Pass the list as an argument into the writerow() function of the writer object. (It will add a list as a new row into the CSV file).
- Close the file object
Python3
# Import writer class from csv modulefrom csv import writer# List that we want to add as a new rowList = [6, 'William', 5532, 1, 'UAE']# Open our existing CSV file in append mode# Create a file object for this filewith open('event.csv', 'a') as f_object: # Pass this file object to csv.writer() # and get a writer object writer_object = writer(f_object) # Pass the list as an argument into # the writerow() writer_object.writerow(List) # Close the file object f_object.close() |
Output:
Append a new row to the existing CSV file using Dictwriter
Let’s see how to use DictWriter class to append a dictionary as a new row into an existing CSV file.
- Open your CSV file in append mode Create a file object for this file.
- Pass the file object and a list of column names to DictWriter() You will get an object of DictWriter.
- Pass the dictionary as an argument to the writerow() function of DictWriter (it will add a new row to the CSV file).
- Close the file object
Python3
# Import DictWriter class from CSV modulefrom csv import DictWriter# list of column namesfield_names = ['ID', 'NAME', 'RANK', 'ARTICLE', 'COUNTRY']# Dictionary that we want to add as a new rowdict = {'ID': 6, 'NAME': 'William', 'RANK': 5532, 'ARTICLE': 1, 'COUNTRY': 'UAE'}# Open CSV file in append mode# Create a file object for this filewith open('event.csv', 'a') as f_object: # Pass the file object and a list # of column names to DictWriter() # You will get a object of DictWriter dictwriter_object = DictWriter(f_object, fieldnames=field_names) # Pass the dictionary as an argument to the Writerow() dictwriter_object.writerow(dict) # Close the file object f_object.close() |
Output:
CSV file after Appending Dictionary
