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 ở đâyprint(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 ở đâyprint(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 ở đâyprint(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
# Testdata = 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
# Testdata = [ ['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 ITcount = 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