CodeGym /Khóa học Java /Python SELF VI /Lưu dữ liệu dưới định dạng CSV và Excel

Lưu dữ liệu dưới định dạng CSV và Excel

Python SELF VI
Mức độ , Bài học
Có sẵn

1. Chuẩn bị dữ liệu để lưu trữ

Trong các bài giảng trước, chúng ta đã học cách thu thập dữ liệu từ các trang web bằng thư viện BeautifulSoup. Bây giờ là lúc biến những thành tựu scraping của chúng ta thành thứ gì đó hữu ích và thuận tiện cho việc phân tích. Vì nếu dữ liệu chỉ nằm trong script của bạn, chúng không thực sự có nhiều giá trị. Hôm nay, chúng ta sẽ học cách lưu dữ liệu vào các định dạng CSV và Excel, bởi vì, như người ta nói, trong cuộc sống của lập trình viên, giống như cuộc sống của một con mèo, điều quan trọng nhất là... biết cách lưu trữ dữ liệu.

Trước khi bắt đầu biến dữ liệu thành các bảng thú vị, hãy tạm dừng một chút và xem xét cách chuẩn bị dữ liệu của chúng ta để xuất ra ngoài. Thông thường, dữ liệu mà chúng ta thu thập từ các trang web được trình bày dưới dạng danh sách hoặc từ điển. Nên định dạng chúng sao cho sẵn sàng để xuất dưới dạng bảng.

Ví dụ về dữ liệu

Giả sử bạn đã thu thập được dữ liệu về các cuốn sách như sau:

Python

books = [
    {"title": "Harry Potter và Hòn đá Phù Thủy", "author": "J. K. Rowling", "price": "350.00"},
    {"title": "Chúa Tể Những Chiếc Nhẫn", "author": "J. R. R. Tolkien", "price": "500.00"},
    {"title": "Master và Margarita", "author": "M. A. Bulgakov", "price": "450.00"}
]

2. Lưu dưới định dạng CSV

CSV (Comma-Separated Values) là một định dạng văn bản đơn giản cho phép lưu dữ liệu bảng. Mỗi dòng trong CSV đại diện cho một bản ghi, và mỗi cột được ngăn cách bằng dấu phẩy. Hãy học cách lưu dữ liệu của chúng ta dưới định dạng này.

Sử dụng thư viện csv

Python cung cấp một module tiện lợi là csv, giúp đơn giản hoá công việc khi làm việc với các tệp CSV. Đây là cách chúng ta có thể xuất dữ liệu sách vào CSV:

Python

import csv

with open('books.csv', mode='w', newline='', encoding='utf-8') as file:
    writer = csv.DictWriter(file, fieldnames=["title", "author", "price"])
    writer.writeheader()
    writer.writerows(books)

print("Dữ liệu đã được lưu thành công vào books.csv")

Lưu ý: luôn chỉ định newline='' khi mở tệp ở chế độ w để tránh các dòng trống không mong muốn trên Windows.

Đọc dữ liệu từ CSV

Để hoàn thiện bức tranh, hãy cùng xem cách đọc dữ liệu từ CSV:

Python

with open('books.csv', mode='r', encoding='utf-8') as file:
    reader = csv.DictReader(file)
    for row in reader:
        print(row)

3. Lưu dưới định dạng Excel

Để làm việc với Excel trong Python, chúng ta sẽ sử dụng thư viện pandas. Thư viện này giúp dễ dàng chuyển đổi dữ liệu thành DataFrame và xuất ra nhiều định dạng khác nhau, bao gồm cả Excel.

Cài đặt pandas

Nếu bạn chưa cài pandas, có thể làm điều đó bằng cách sử dụng pip:

Bash

pip install pandas openpyxl

Sử dụng pandas để xuất ra Excel

Bây giờ chúng ta hãy lưu dữ liệu sách vào Excel:

Python

import pandas as pd

df = pd.DataFrame(books)
df.to_excel('books.xlsx', index=False, engine='openpyxl')

print("Dữ liệu đã được lưu thành công vào books.xlsx")

Đọc dữ liệu từ Excel

Việc tạo ra dữ liệu là một niềm vui, nhưng việc sử dụng lại những gì đã tạo cũng thú vị không kém! Hãy học cách đọc dữ liệu từ Excel:

Python

df = pd.read_excel('books.xlsx')
print(df)

4. Lỗi và cách xử lý

Giống như ở bất kỳ khía cạnh nào khác của lập trình, khi xuất dữ liệu, bạn có thể gặp phải lỗi. Lỗi phổ biến nhất liên quan đến đường dẫn tệp không đúng hoặc thiếu các thư viện cần thiết. Ví dụ, nếu bạn quên cài đặt openpyxl, việc xuất ra Excel sẽ không thành công.

Kiểm tra sự tồn tại của tệp

Trước khi thử ghi hoặc đọc một tệp, bạn nên kiểm tra sự tồn tại của nó. Có thể làm điều này bằng mô-đun os:

Python

import os

if os.path.exists('books.csv'):
    print("Tệp books.csv có tồn tại")
else:
    print("Tệp books.csv không tìm thấy")

Bạn sẽ không tin được, nhưng lỗi phổ biến nhất của người mới là vô tình ghi đè dữ liệu cũ bằng dữ liệu mới. Việc tự động hóa lưu trữ lịch sử tệp là cả một nghệ thuật.

Đừng quên cũng nên sử dụng xử lý lỗi bằng try-except, để script của bạn không bị dừng ngay khi có vấn đề xảy ra.

Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION