×

Writing to a CSV file in Python

Python is an Object-Oriented high-level language. Python has an English-like syntax, which is very easy to read and write codes. Python is an interpreted language which means that it uses an interpreter instead of the compiler to run the code.

The interpreted language is processed at the run time thus takes less time to run. Python is also interactive, so we can directly run programs in the terminal itself.

While working in Python, we will often need to read a CSV file and do some operations with the data inside it. The comma-separated files or CSV files are some of the most used files to store the data. In a CSV file, data is stored in a way that a comma separates every value, hence the name Comma-separated file.

The first row denotes the column header. It is pretty common to work with CSV files in Python, and one should have a knowledge of how to deal with them.

We can work with CSV by using the CSV library in Python. Another option is using pandas which is a very powerful library and is very useful in many applications.

An example of a CSV file is:

Id, Name, Age
1, Rahul,21
2, Michael,22

As you can see, the first row denotes the column heading, and a comma separates the data. Here the delimiter is a comma, and we can define any single character as a delimiter in a CSV file.

In this post, we are going to use the CSV library in Python to work with CSV files. It provides the functionality of both reading and writing the CSV files with some other functionalities also.

Writing CSV files

We can also write a CSV file with the help of the CSV library in Python. We can write the CSV file using the writer object from CSV.writer() function. There are multiple ways in which we can write a CSV file using Python. Let us discuss some of them:

Writing CSV using CSV.writerow()

In this case, we will write data in to the CSV file row by row.

Suppose this is the data we want to write in the file:

S.No, City, State

  1. Agra, Uttar Pradesh
  2. New Delhi, Delhi
  3. Mumbai, Maharashtra

Here is the code to write it in a CSV file:

import csv
with open('cities.csv', 'w', newline='') as file:
writer = csv.writer(file)
writer.writerow(["S.No ", " City ", " State "])
writer.writerow([1, " Agra ", " Uttar Pradesh "])
writer.writerow([2, " New Delhi ", " Delhi "])
writer.writerow([3, " Mumbai ", "Maharashtra"])

Output

When we run this code, it will generate a new file named cities.csv in your current directory with the following content:

S.No City State 
1 Agra Uttar Pradesh 
2 New Delhi Delhi 
3 Mumbai Maharashtra
Writing to a CSV file in Python.

In the code, we have imported the CSV module in the first line.

Then open a new file as WRITE mode with the Python open() function.

After that, we are passing that file to the CSV.writer() function, which returns a writer object.

Finally, we are adding each row one by one by using the writerow() function.

Writing Multiple Rows

In this case,we are going to write all the rows of the file in a single line.

To create the data set to export into a CSV file, we must make a list for each row and add all of these rows in a single list. We will also need to define a list of just column headings. Then we pass this data to the CSV.writer() function that returns a writer object that converts the data to write in a CSV file. After that, we will use methods like writerows() to write data into a CSV file.

Let us see the code to write data into a CSV file:

import csv
headers = [“id”, “Name”, “Age”]
rows = [
[1, “Rahul”,21],
[2,”Michael”,22],
[3,”virat”,19]]
with open('students.csv', 'w', newline='') as file:
writer = csv.writer(file)
writer.writerow(headers)
writer.writerows(rows)

When we run the above code, a students.csv file will be created in the current directory with the following content:

id, Name, Age
1, Rahul,21
2, Michael,22
3, Virat,19
Writing to a CSV file in Python.

If we want to add rows one by one, we can use the method writerow().

Now let us understand the code we have just written:

• import csv
  headers = [“id”, “Name”, “Age”]
  rows = [
[1, “Rahul”,21],
[2,”Michael”,22],
[3,”virat”,19]]

In this part of the code, we import the CSV module and define the headers and rows for the data. The headers contain the column heading, and rows are the data for those headings.

• with open('students.csv', 'w', newline='') as file:
  writer = csv.writer(file)

Here we are first opening the file in write mode, and the object is named a file. After that, we pass the file object to the CSV.writer() function, which will convert the file object to the CSV.writer object. We are saving this object as a writer.

• writer.writerow(headers)
  writer.writerows(rows)

Here in the first line of code, we are writing the headers with the writer's method, and in the second line, we are writing rows since rows contain multiple lines of data, so the method used id writers.

Writing CSV file with Custom Delimiter.

By default, CSV files are separated by commas, which means the default delimiter of a CSV file is a comma. However, we can also define our custom delimiter in CSV files like '|' or '\t'.

If we want to specify our custom delimiter, we can pass the additional perimeter delimiter to the CSV.writer() function.

Let us use the delimiter '|' in the previous example data.

import csv
headers = ["id", "Name", "Age"]
rows = [
[1, "Rahul",21],
[2,"Michael",22],
[3,"Virat",19]]
with open('students.csv', 'w', newline='') as file:
writer = csv.writer(file,delimiter = "|")
writer.writerow(headers)
writer.writerows(rows)

Output

Running this code will generate a CSV file with delimiter as "|".

id|Name|Age
1|Rahul|21
2|Michael|22
3|Virat|19
Writing to a CSV file in Python.

Writing Dictionary to CSV files

We can write a Python dictionary to a CSV file by using the objects of csv.DictWriter() class. The syntax for the csv.DictWriter() class is:

csv.DictWriter(file, fieldnames)

Here, the file is the file name where we want to write the dictionary, and field names are the list of column headings describing the order in which data is present. The basic logic is similar to writing data in a CSV file, but here, instead of defining the rows, we have to define a list of a dictionary that contains the data to be written. Use the following code to write a dictionary to a CSV file:

import CSV


mydict =[{'branch': 'CSE', 'name': 'Nikhil', 'year': '4'},
         {'branch': 'CSE', 'name': 'Rahul', 'year': '1'},
         {'branch': 'IT', 'name': 'Michael', 'year': '2'},
         {'branch': 'ECE', 'name': 'Sagar', 'year': '3'},
         {'branch': 'ME', 'name': 'Roahan', 'year': '3'},
         {'branch': 'EEE', 'name': 'Virat', 'year': '1'}]


fields = ['name', ‘branch’, 'year',]


with open(‘students_data.csv’, 'w') as file:
writer = csv.DictWriter(file, fieldnames = fields)      
writer.writeheader()
writer.writerows(mydict)

After running the code, a file called students_data.csv will get created in your current directory with the following content:

name,branch,year


Nikhil, CSE,4


Rahul,CSE,1


Michael, IT,2


Sagar, ECE,3


Rohan, ME,3


Virat, EEE,1
Writing to a CSV file in Python.

Now let us understand the code we have just written:

• import CSV


mydict =[{'branch': 'CSE', 'name': 'Nikhil', 'year': '4'},
         {'branch': 'CSE', 'name': 'Rahul', 'year': '1'},
         {'branch': 'IT', 'name': 'Michael', 'year': '2'},
         {'branch': 'ECE', 'name': 'Sagar', 'year': '3'},
         {'branch': 'ME', 'name': 'Roahan', 'year': '3'},
         {'branch': 'EEE', 'name': 'Virat', 'year': '1'}]


fields = ['name', ‘branch’, 'year',]

In this part of the code, we import the CSV module and define the dictionary, which contains all the data in a Python dictionary format, and the fieldname, which are nothing but column headings. These fieldnames define the order in which columns get written in a CSV file.

• with open(‘students_data.csv’, 'w') as file:
  writer = csv.DictWriter(file, fieldnames = fields)      

Here we are first opening the file in write mode, and the object is named as the file. After that, we are passing the file object to CSVthe .writer() function, which will convert the file object to CSV.writer object, and the fieldnames are specified as an argument that contains the column headings. We are saving this object as a writer.

• writer.writeheader()
  writer.writerows(mydict)

Here in the first line of code, the writeheader method writes the first line of the file by using the given fieldnames arguments. In the second line, we are writing the dictionary to the file since rows contain multiple data lines, so the method used id writers.


Related Topics

Pillow Python introduction and setup

Introduction Advanced image processing implies handling the picture carefully with the assistance of a PC. Utilizing picture handling we can perform activities like upgrading the picture, obscuring the picture, separating text...

4 minutes read.

Sklearn in Python

Scikit-learn or sklearn is a machine learning library used in Python that provides many unsupervised and supervised learning tools and algorithms. David Cournapeau first created it as a 2007 Google...

7 minutes read.

Python Set issubset() method

Python Set issubset() method The set.issubset() method in Python returns True if all items in the set exists in the specified set, otherwise it returns False. Syntax set.issubset(set1) Parameter set- This parameter represents the set to check whether...

2 minutes read.

How to Install Python In Windows

How To Install Python In Windows? Python is a language that every aspirant developer looks forward to. One thing we must keep in our mind is how to begin our hands-on...

3 minutes read.

Python K-Means Clustering

K-Means Clustering is a basic yet incredible calculation in information scienceThere are a plenty of true utilizations of K-Means clustering (a couple of which we will cover here)This far reaching...

25 minutes read.

Nested List in Python

The list is an inbuilt sequential data type in Python. It is a very useful and frequently used data type. A list can store any number of data items of...

4 minutes read.

Data Drop in Python

Introduction You'll understand how to delete a group of rows from a Pandas dataframe in this article.You can read this article on How to Drop Columns in Pandas to find out...

6 minutes read.

Isreal() Python

Python Programming Language Python programming language is one of the most used programming languages, as it is used widely in the field of software and data analysis, web development, etc. It...

4 minutes read.

Best Database in Python

In this tutorial, Firstly, we will understand what the term database means. Further, we will see the various databases supported in Python and when to use which one. Further, we...

7 minutes read.

Flutter Python

The flutter is a frame work available in the python programming language, to create web applications, mobile apps. The flutter is generally used for the development of the backend of...

3 minutes read.

Python Struct

Python Python is an interactive and more accessible language than any other programming language. The python programming language uses a variety of libraries to perform the operations in a faster way....

3 minutes read.

Python Dictionary keys() method

Python Dictionary keys() method The dictionary.keys() method in Python returns a view object that displays a list of all the keys in the dictionary Syntax dictionary.keys() Parameter NA Return This method returns a view object that displays...

2 minutes read.

Arithmetic Expressions in Python

What is Python Expression? Expressions are collections of operands and operators. Python expressions are translated by the Python interpreter into some value or outcome. In Python, an expression is made up...

13 minutes read.

Import py file in Python

In Python programming language, a module is a single layer of block of Python code that can be loaded and used by importing into other Python block of code. A module...

4 minutes read.

Add in Dictionary Python

Dictionary in python: Dictionaries are a useful data configuration for storing information in Python because they can mimic real-world data arrangements where a particular value exists for a particular key. The...

4 minutes read.

Python if statement

Python if statement Decision making is an essential feature of any programming languages. Condition checking is the strength of decision making. Python provides many decision-making statements, such as: If statementIf-else statementelif statement if statement The if statement is...

2 minutes read.

Python Glob

Methods for matching files that include particular patterns in accordance with UNIX shell-related expansion rules are referred to as "glob" methods. Similar methods for finding, locating, and searching for all of...

12 minutes read.

How to learn python Online

Need to Learn a Programming Language 1. To get a high Paying job We know that Software Engineering is one of the top-paying professions in the world. The top criteria to be...

3 minutes read.

Cube Root in Python

In general, the cube is a three-dimensional solid figure that has 6 square faces. It is also called a geometrical shape with six equal faces, eight vertices, and twelve edges....

3 minutes read.

Python coding platform

Python is a popular general-purpose programming language with many applications. High-level data structures, datatypes, dynamic binding, and many other features make it useful for both designing complex applications and "glue...

6 minutes read.