CodeGym /Adesua ahorow /Python SELF TW /將資料儲存為 CSV 和 Excel 格式

將資料儲存為 CSV 和 Excel 格式

Python SELF TW
等級 32 , 課堂 3
開放

1. 準備要儲存的資料

在之前的講座中,我們已經學會了如何使用 BeautifulSoup 從網頁中抓取資料。現在是時候將我們的爬取成果轉化為一些對分析有用且方便的東西啦!如果資料僅留存在你的腳本中,那麼其實沒啥大用處。今天我們要學的是如何將資料儲存為 CSV 和 Excel 格式,畢竟,對程式員而言,就像貓的生活一樣,重要的是找到... 啊不是,我的意思是,儲存該東西。

在我們將資料轉換成有趣的表格之前,先暫停一下,我們來看一下如何將我們的資料準備好進行匯出。通常,我們從網頁提取的資料是以列表或字典的形式呈現。我們需要將它們格式化為適合匯出為表格格式的方式。

資料示例

假設你收集到了以下有關書籍的資料:

Python

books = [
    {"title": "哈利波特與魔法石", "author": "J.K.羅琳", "price": "350.00"},
    {"title": "魔戒", "author": "J.R.R.托爾金", "price": "500.00"},
    {"title": "大師與瑪格麗塔", "author": "M.A.布爾加科夫", "price": "450.00"}
]

2. 儲存為 CSV 格式

CSV(Comma-Separated Values)是一種簡單的文字格式,可以用來儲存表格資料。CSV 的每一行代表一筆記錄,每一列則以逗號分隔。我們來學習如何將資料儲存為此格式。

使用 csv

Python 提供了 csv 模組,讓處理 CSV 檔案變得非常簡單。以下是將書籍資料匯出為 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("資料成功儲存到 books.csv")

注意: 在以 w 模式開啟檔案時,請務必指定 newline='',以避免在 Windows 中出現多餘的空行。

CSV 中讀取資料

為了完整了解,我們來看看如何從 CSV 中讀取資料:

Python

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

3. 儲存為 Excel 格式

為了在 Python 中處理 Excel,我們將使用 pandas 庫。Pandas 讓我們可以輕鬆地將資料轉換為 DataFrame 並匯出為各種格式,包括 Excel。

安裝 pandas

如果你還沒有安裝 pandas,可以使用 pip 來安裝:

Bash

pip install pandas openpyxl

使用 pandas 匯出至 Excel

現在我們來將書籍資料儲存到 Excel:

Python

import pandas as pd

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

print("資料成功儲存到 books.xlsx")

從 Excel 中讀取資料

不僅是創建,能夠重複使用已創建的東西也帶來很多樂趣!來學習如何從 Excel 中讀取資料:

Python

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

4. 錯誤及其處理

就像在程式設計的其他方面一樣,在匯出資料時也可能遇到錯誤。常見的錯誤包括檔案路徑不正確或缺少必要的庫。例如,如果忘記安裝 openpyxl,那麼 Excel 的匯出就會失敗。

檢查檔案是否存在

在嘗試寫入或讀取檔案之前,檢查檔案是否存在是個好主意。這可以通過 os 模組來完成:

Python

import os

if os.path.exists('books.csv'):
    print("檔案 books.csv 存在")
else:
    print("檔案 books.csv 未找到")

你可能不會相信,但新手最常犯的錯誤之一是無意中用新資料覆蓋了舊資料。自動化檔案歷史記錄的保存是一門藝術。

別忘了使用 try-except 結構來進行錯誤處理,這樣你的腳本不會因為遇到第一個問題就崩潰。

留言
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION