Skip to main content
Practice

Understanding CSV and Its Application in Python

CSV(Comma-Separated Values) is a simple text format used to store and exchange data.

CSV files store tabular data as text, where each data field is separated by a comma (,).

example.csv
name,age,city
JohnDoe,24,New York
JaneSmith,30,Los Angeles

CSV is compatible with spreadsheet programs (e.g., Microsoft Excel, Google Sheets) and database management systems.


Basic Structure of CSV

Header: The first line of the file, optional, can include the name of each column. The header aids in interpreting the data.

Records (Rows): Each row represents a single data record, typically meaning an entry or object in a database.

Fields (Columns): Each data item in a row is a field, separated by commas. These fields represent individual data points.


Reading and Writing CSV Files

Python's built-in csv module allows for easy reading and writing of CSV files.


csv.reader: Reading a CSV File

csv.reader creates an object to read CSV files.

This object iterates over each record (row) in the file, converting them into a list of fields (columns). By default, data is comma-separated, but other delimiters can be specified.

csv.reader Example
import csv

with open('example.csv', 'r', newline='') as file:
reader = csv.reader(file)
for row in reader:
print(row)

The code above opens the example.csv file and prints each row in the file.

newline='' is the recommended way to open files, ensuring consistent newline character handling across platforms.


csv.writer: Writing to a CSV File

csv.writer creates an object to write data to CSV files.

Using this object, you can write rows containing data fields to a CSV file. csv.writer also uses commas as field delimiters by default, which can be changed if necessary.

csv.writer Example
import csv

with open('output.csv', 'w', newline='') as file:
writer = csv.writer(file)
writer.writerow(['name', 'age', 'city'])
writer.writerow(['John Doe', '30', 'New York'])
writer.writerow(['Jane Smith', '25', 'Los Angeles'])

This code creates a new output.csv file and uses the writerow method to write data to each row.

The first writerow call writes the header, while subsequent calls add data rows.


Other Features of the CSV Module

  • csv.DictReader: Reads a CSV file into a dictionary object.

  • csv.DictWriter: Writes dictionary objects to a CSV file.


DictReader, DictWriter Example

Handling example.csv file at the same path
# Reading example.csv file at the same path into a dictionary
with open('example.csv', 'r') as file:
csv_reader = csv.DictReader(file)

# Print each row
for row in csv_reader:
print(row)

# Field names
fieldnames = ['name', 'age', 'city']

# Data
rows = [
{'name': 'Mike', 'age': 20, 'city': 'Chicago'},
{'name': 'Anna', 'age': 22, 'city': 'Miami'}
]

with open('output_dict.csv', 'w', newline='') as file:
# Specify field names
csv_writer = csv.DictWriter(file, fieldnames=fieldnames)

# Write header
csv_writer.writeheader()

# Write data
for row in rows:
csv_writer.writerow(row)

Note: The current learning environment does not support directly reading and writing files using the open function.


Practice

Click the Run Code button on the right side of the screen and try modifying the code or examining the results of web scraping!

Want to learn more?

Join CodeFriends Plus membership or enroll in a course to start your journey.