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 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
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
from
csv
import
writer
List
=
[
6
,
'William'
,
5532
,
1
,
'UAE'
]
with
open
[
'event.csv'
,
'a'
] as f_object:
writer_object
=
writer[f_object]
writer_object.writerow[
List
]
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.
Append a dictionary as a new row to the existing CSV file
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
mode
Create 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
from
csv
import
DictWriter
field_names
=
[
'ID'
,
'NAME'
,
'RANK'
,
'ARTICLE'
,
'COUNTRY'
]
dict
=
{
'ID'
:
6
,
'NAME'
:
'William'
,
'RANK'
:
5532
,
'ARTICLE'
:
1
,
'COUNTRY'
:
'UAE'
}
with
open
[
'event.csv'
,
'a'
] as f_object:
dictwriter_object
=
DictWriter[f_object, fieldnames
=
field_names]
dictwriter_object.writerow[
dict
]
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.