Bài tập CSV - Cơ bản
- Tạo file CSV
students.csvchứa thông tin 3 học sinh với các cột: name, age, grade.
import csv
# Code của bạn ở đây
# Tạo file students.csv với header và 3 học sinh- Đọc file
students.csvvà in ra tất cả các dòng dưới dạng list.
import csv
# Code của bạn ở đây
# Output: [['name', 'age', 'grade'], ['Alice', '15', '9'], ...]- Đọc file CSV và in ra từng dòng, bỏ qua dòng header.
import csv
# Code của bạn ở đây
# Chỉ in dữ liệu, không in header- Tạo file CSV
products.csvchứa: product_name, price, quantity cho 5 sản phẩm.
import csv
products = [
['product_name', 'price', 'quantity'],
['Laptop', 1000, 5],
['Mouse', 20, 50],
['Keyboard', 50, 30],
['Monitor', 300, 10],
['Headphones', 80, 25]
]
# Code của bạn ở đây - ghi vào products.csv- Đọc file
products.csvvà tính tổng giá trị kho hàng (price * quantity).
import csv
total_value = 0
# Code của bạn ở đây
print(f"Tổng giá trị kho hàng: ${total_value}")- Đọc file CSV dùng
DictReadervà in ra mỗi dòng dưới dạng dictionary.
import csv
# Code của bạn ở đây với DictReader- Tạo file
employees.csvdùngDictWritervới các cột: name, department, salary.
import csv
employees = [
{'name': 'Alice', 'department': 'IT', 'salary': 80000},
{'name': 'Bob', 'department': 'HR', 'salary': 60000},
{'name': 'Charlie', 'department': 'IT', 'salary': 90000}
]
# Code của bạn ở đây - ghi bằng DictWriter- Đọc file
employees.csvvà in ra tên của các nhân viên thuộc phòng IT.
import csv
# Code của bạn ở đây
# Output: Alice, Charlie- Thêm 2 nhân viên mới vào cuối file
employees.csv(append mode).
import csv
new_employees = [
['David', 'Sales', 70000],
['Emily', 'Marketing', 65000]
]
# Code của bạn ở đây - dùng mode 'a'- Đọc file CSV và đếm số lượng dòng (không tính header).
import csv
count = 0
# Code của bạn ở đây
print(f"Số lượng dòng dữ liệu: {count}")- Tạo file
scores.csvvới: student_name, math, english, science.
import csv
scores = [
['student_name', 'math', 'english', 'science'],
['Alice', 85, 90, 88],
['Bob', 78, 85, 80],
['Charlie', 92, 88, 95]
]
# Code của bạn ở đây- Đọc
scores.csvvà tính điểm trung bình của từng học sinh.
import csv
# Code của bạn ở đây
# Output:
# Alice: 87.67
# Bob: 81.00
# Charlie: 91.67- Đọc file CSV và lưu tất cả dữ liệu vào một list of dictionaries.
import csv
data = []
# Code của bạn ở đây
print(data)
# [{'name': 'Alice', 'age': '25'}, {'name': 'Bob', 'age': '30'}, ...]- Tạo file CSV với delimiter là dấu chấm phẩy (;) thay vì dấu phẩy.
import csv
data = [
['name', 'country', 'language'],
['Alice', 'USA', 'English'],
['Bob', 'France', 'French']
]
# Code của bạn ở đây - dùng delimiter=';'- Đọc file CSV (delimiter ;) và in ra dữ liệu.
import csv
# Code của bạn ở đây - đọc file với delimiter=';'- Viết function
read_csv_to_list(filename)đọc file CSV và trả về list of lists.
import csv
def read_csv_to_list(filename):
# Code của bạn ở đây
pass
# Test
data = read_csv_to_list('students.csv')
print(data)- Viết function
write_csv_from_list(filename, data)ghi list vào file CSV.
import csv
def write_csv_from_list(filename, data):
# Code của bạn ở đây
pass
# Test
data = [
['name', 'age'],
['Alice', 25],
['Bob', 30]
]
write_csv_from_list('output.csv', data)- Đọc file CSV và tìm dòng có giá trị lớn nhất ở một cột cụ thể.
import csv
# Giả sử có file products.csv với cột price
# Tìm sản phẩm có giá cao nhất
# Code của bạn ở đây- Đọc file
employees.csvvà tạo file mới chỉ chứa các nhân viên có salary > 70000.
import csv
# Code của bạn ở đây
# Đọc employees.csv
# Lọc và ghi vào high_salary.csv- Viết function
count_by_column(filename, column_name, value)đếm số dòng có giá trị cụ thể ở một cột.
import csv
def count_by_column(filename, column_name, value):
"""
Đếm số dòng có giá trị cụ thể ở cột column_name
"""
# Code của bạn ở đây
pass
# Test
# Đếm số nhân viên thuộc phòng IT
count = count_by_column('employees.csv', 'department', 'IT')
print(f"Số nhân viên IT: {count}")**💡 Lưu ý quan trọng:
- Luôn dùng
encoding='utf-8'khi làm việc với ký tự tiếng Việt - Dùng
newline=''khi ghi file CSV - Dùng context manager (
with) để tự động đóng file**