Reading and writing csv files using python

Reading and writing csv files using python

Comma Separated Values - CSV

CSV is stands for comma separated values. CSV file format is most commonly used format for imports and exports of data to spreadsheets and databases.

Advantages to using CSV

  • edit csv file manually with any text editor
  • ease of parsing and implementing the data in csv
  • faster to handle the csv and smaller file size
  • csv is considered to be standard format

Disadvantages using CSV

  • csv cannot deal with complex configurations
  • No separation between numeric data and text data
  • Some of the databases doesn't support csv files to import data
  • No full support for special charactors

Reading and Writing CSV files in python

Python provides a in-built module csv to read and write the csv files.

Writing csv files using python

# bulk writing csv files using python
data = [
    ('First Name', 'Last Name', 'City'),
    ('Ram', 'B', 'Warangal'),
    ('Naveen', 'M', 'Hyderabad'),
]
with open('test.csv', 'a+') as csv_file:
    writer = csv.writer(csv_file, delimiter=',')
    writer.writerows(data)

# write a row
with open('test.csv', 'a+') as csv_file:
    row = ('Naveen', 'M', 'Hyderabad')
    writer = csv.writer(csv_file, delimiter=',')
    writer.writerow(row)

If we open a file using "with" statement we do not need to take care of closing of the file, It will close the csv file automatically. The function "writer" in module csv takes the file, delemeter as parameters and returns the writer object. The parameter "delemeter" is used to separate the columns in a row. we can write bulk rows to file at once using method "writerows". To write a single row use method "writerow" . Above code is the simple example for writing csv files using python.

Reading csv files using python

import csv

with open('test.csv', 'r') as csv_file:
    reader = csv.reader(csv_file, delimiter=',')
    for row in reader:
        print(type(row)) # list
        for cell in row:
            print(cell)
        print "*" * 10

The function "reader" in module csv takes the file, delemeter as parameters and returns the "reader object". The parameter "delemeter" is used to separate the columns in a row. we can iterate through the reader object to get rows. each row in a reader object is a list. we can iterate through the row to get the column. Above code is the simple example for reading csv files using python.

Reference:

  1. https://docs.python.org/3/library/csv.html