Đọc File CSV với Thư Viện csv trong Python
CSV (Comma-Separated Values) là định dạng phổ biến để lưu trữ dữ liệu dạng bảng, trong đó các giá trị được phân tách bằng dấu phẩy hoặc dấu chấm phẩy. Python cung cấp thư viện csv
để đọc và xử lý file CSV một cách dễ dàng.

1. Đọc File CSV Dòng Theo Dòng
Dưới đây là cách đọc file CSV từng dòng bằng csv.reader()
.
Ví dụ
Giả sử ta có file data.csv
với nội dung sau:
Tên,Tuổi,Thành phố
An,25,Hà Nội
Bình,30,Hồ Chí Minh
Chi,22,Đà Nẵng
Ta có thể đọc file này như sau:
import csv
with open("data.csv", mode="r", encoding="utf-8") as file:
reader = csv.reader(file)
# Đọc tiêu đề
header = next(reader)
print("Tiêu đề:", header)
# Đọc từng dòng dữ liệu
for row in reader:
print("Dòng:", row)
Kết quả:
Tiêu đề: ['Tên', 'Tuổi', 'Thành phố']
Dòng: ['An', '25', 'Hà Nội']
Dòng: ['Bình', '30', 'Hồ Chí Minh']
Dòng: ['Chi', '22', 'Đà Nẵng']
Giải thích:
-
csv.reader(file)
đọc file CSV thành danh sách các dòng. -
next(reader)
lấy dòng đầu tiên làm tiêu đề. - Vòng lặp
for row in reader
đọc từng dòng dữ liệu.
2. Đọc File CSV Thành Danh Sách Dictionary
Dùng csv.DictReader()
để đọc file CSV dưới dạng dictionary (từ điển).
import csv
with open("data.csv", mode="r", encoding="utf-8") as file:
reader = csv.DictReader(file)
for row in reader:
print(row)
Kết quả:
{'Tên': 'An', 'Tuổi': '25', 'Thành phố': 'Hà Nội'}
{'Tên': 'Bình', 'Tuổi': '30', 'Thành phố': 'Hồ Chí Minh'}
{'Tên': 'Chi', 'Tuổi': '22', 'Thành phố': 'Đà Nẵng'}
Giải thích:
-
csv.DictReader(file)
tự động sử dụng dòng đầu tiên làm key của dictionary. - Mỗi dòng dữ liệu sẽ được đọc thành một dictionary.
3. Đọc File CSV với Dấu Phân Tách Khác (Dấu Chấm Phẩy, Tab, v.v.)
Nếu file CSV sử dụng dấu phân tách khác (ví dụ: dấu chấm phẩy ;
), ta cần chỉ định delimiter
.
Ví dụ, file data.csv
:
Tên;Tuổi;Thành phố
An;25;Hà Nội
Bình;30;Hồ Chí Minh
Chi;22;Đà Nẵng
Cách đọc file này:
import csv
with open("data.csv", mode="r", encoding="utf-8") as file:
reader = csv.reader(file, delimiter=";")
for row in reader:
print(row)
Giải thích:
- Thêm
delimiter=";"
để Python hiểu rằng dữ liệu được phân tách bằng dấu;
.
Tóm Tắt
Phương pháp | Cách sử dụng |
---|---|
csv.reader() |
Đọc file CSV thành danh sách từng dòng. |
csv.DictReader() |
Đọc file CSV thành danh sách dictionary. |
delimiter=";" |
Đọc file CSV với dấu phân tách khác (chấm phẩy, tab, v.v.). |
Khi làm việc với file CSV, luôn mở file với with open()
để đảm bảo file được đóng tự động sau khi đọc.

Với hơn 10 năm kinh nghiệm lập trình web và từng làm việc với nhiều framework, ngôn ngữ như PHP, JavaScript, React, jQuery, CSS, HTML, CakePHP, Laravel..., tôi hy vọng những kiến thức được chia sẻ tại đây sẽ hữu ích và thiết thực cho các bạn.
Xem thêm

Chào, tôi là Vũ. Đây là blog hướng dẫn lập trình của tôi.
Liên hệ công việc qua email dưới đây.
lhvuctu@gmail.com