How to append a new row to an existing csv file? - GeeksforGeeks

26 Nov, 2020
For appending a new row to an existing CSV file we have many ways to do that. Here we will discuss 2 ways to perform this task effectively. So, we have 2 ways first is ‘Append a list as a new row to the existing CSV file’ and the 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. Suppose we have CSV file event.csv which has the below contents.
CSV file before append
For writing a CSV file, the CSV module provides two different classes writer and Dictwriter.
Append a list as a new row to the existing CSV file
let’s see how to use writer class to append a list as a new row into an existing CSV file. There are several steps to take that.
Import writer class from csv module
Open your existing CSV file in append modeCreate 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
Let’s take one List that we want to add as a new row.
List=[6,'William',5532,1,'UAE']

Now apply the above steps to the program.
Python3
# Import writer class from csv modulefrom csv import writer  # List List=[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:
CSV file After appending List
When you are executing this program Ensure that your CSV file must be closed otherwise this program will give you a permission error.
let’s see how to use DictWriter class to append a dictionary as a new row into an existing CSV file. There are several steps to do that.
Import DictWriter class from CSV module.
Open your CSV file in append modeCreate a file object for this file.
Pass the file object and a list of column names to DictWriter()You will get a object of DictWriter.
Pass the dictionary as an argument to the Writerow() function of DictWriter(it will add a new row to CSV file).
Close the file object
Let’s take one Dictionary that we want to add as a new row.
dict={'ID':6,'NAME':'William','RANK':5532,'ARTICLE':1,'COUNTRY':'UAE'}

Now apply the above steps to the program.
Python3
# Import DictWriter class from CSV modulefrom csv import DictWriter  # list of column names field_names = ['ID','NAME','RANK',               'ARTICLE','COUNTRY']  # Dictionarydict={'ID':6,'NAME':'William','RANK':5532,      'ARTICLE':1,'COUNTRY':'UAE'}  # Open your 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
When you are executing this program ensures that your CSV file must be closed otherwise this program will give you a permission error.
python-csv
Technical Scripter 2020
Python
Technical Scripter
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Python Dictionary
Read a file line by line in Python
How to Install PIP on Windows ?
Enumerate() in Python
Different ways to create Pandas Dataframe
Iterate over a list in Python
*args and **kwargs in Python
Reading and Writing to text files in Python
Create a Pandas DataFrame from Lists
Convert integer to string in Python