Colab 雲端硬碟整合與檔案讀寫:Google Sheets、Excel、TXT 實戰

Colab 雲端硬碟整合與檔案讀寫:Google Sheets、Excel、TXT 實戰

Colab 雲端硬碟整合與檔案讀寫:Google Sheets、Excel、TXT 實戰

簡介

Google Colab 提供了一個方便的雲端 Python 開發環境。與 Google 雲端硬碟 (Google Drive) 整合是 Colab 的一項重要功能,它讓您可以:

  • 直接在 Colab 中存取您雲端硬碟上的檔案 (資料集、程式碼、文件等)。
  • 將 Colab 的輸出結果 (模型、圖表、處理後的資料) 儲存到雲端硬碟。
  • 與他人共享雲端硬碟上的檔案,方便協作。

本文將介紹如何在 Colab 中掛載 Google 雲端硬碟,以及讀取和寫入 Google Sheets、Excel 和 TXT 這三種常見檔案格式的最實用方法。

掛載 Google 雲端硬碟

在 Colab 中掛載 Google 雲端硬碟有兩種主要方法:

方法一:使用 drive.mount() (簡單快速)

這是最簡單的方法,適合只需要存取 Google Drive 檔案的情況。


from google.colab import drive
drive.mount('/content/drive')

執行這段程式碼後:

  1. 會出現一個連結,點擊它。
  2. 在彈出的視窗中選擇您的 Google 帳戶。
  3. 授予 Colab 存取您 Google 雲端硬碟的權限。
  4. 複製驗證碼,貼回 Colab 的輸入框中,然後按 Enter。

掛載成功後,您的 Google 雲端硬碟根目錄會出現在 /content/drive/MyDrive。 您可以使用 Linux 檔案路徑語法 (例如 /content/drive/MyDrive/MyFolder/MyFile.txt) 來存取您的檔案。

重要提示: 每次重新啟動 Colab 工作階段時,都需要重新掛載 Google 雲端硬碟。

為了安全起見, 建議在程式碼中加入判斷,確認 Google Drive 是否已經掛載。


import os
from google.colab import drive
if not os.path.exists('/content/drive/MyDrive'):  # 確認是否已經掛載
    drive.mount('/content/drive')

方法二:使用 auth.authenticate_user() (進階)

如果您需要更精細的權限控制,或者需要存取其他 Google 服務 (例如 Google Sheets API),建議使用此方法。


from google.colab import auth
auth.authenticate_user()

執行這段程式碼後,會出現與 drive.mount() 類似的授權流程。 此方法通常與 Google API 的 Python 客戶端函式庫 (例如 google-api-python-clientgspread) 一起使用。

讀取和寫入檔案

在檔案讀寫的部分,為了程式碼簡潔和通用性,建議直接使用檔案的絕對路徑,而不用再額外使用 cdos.chdir() 切換工作目錄。

Google Sheets

推薦方法: 使用 gspread 函式庫。

安裝:


!pip install gspread

範例程式碼:


import gspread
import pandas as pd

# 1. 驗證 (使用服務帳戶金鑰)
#   - 將您的服務帳戶金鑰 JSON 檔案上傳到 Colab (或放在 Google Drive 中)。
gc = gspread.service_account(filename='/content/drive/MyDrive/path/to/your/credentials.json')

# 2. 開啟試算表 (使用試算表 ID 或網址)
spreadsheet = gc.open_by_key('YOUR_SPREADSHEET_ID')  # 替換為您的試算表 ID
# 或 spreadsheet = gc.open_by_url('YOUR_SPREADSHEET_URL')

# 3. 選擇工作表
worksheet = spreadsheet.sheet1  # 選擇第一個工作表

# 4. 讀取資料 (轉換為 Pandas DataFrame)
data = worksheet.get_all_records()
df = pd.DataFrame(data)

# 5. (可選) 將資料寫入新的 Google Sheets 或覆蓋現有資料
# 建立新的試算表
# new_spreadsheet = gc.create('My New Spreadsheet')
# new_worksheet = new_spreadsheet.sheet1
# new_worksheet.update([df.columns.values.tolist()] + df.values.tolist())  # 標題 + 資料

# 覆蓋現有試算表
# worksheet.update([df.columns.values.tolist()] + df.values.tolist())

print(df.head())

服務帳戶金鑰:
1. 前往 Google Cloud Console
2. 建立或選擇一個專案。
3. 在 API 和服務中啟用 Google Sheets API 和 Google Drive API。
4. 建立服務帳戶。
5. 建立服務帳戶金鑰 (JSON 格式)。
6. 將金鑰檔案下載到您的電腦,然後上傳到 Colab (或放在 Google Drive 中)。
7. 重要:將您的服務帳戶加入 Google 試算表的共用清單中(編輯者權限),否則即使有金鑰也無法存取。

Excel 檔案

推薦方法: 使用 pandas 函式庫。

安裝:


!pip install pandas openpyxl

範例程式碼:


import pandas as pd

# 讀取 Excel 檔案
excel_file_path = '/content/drive/MyDrive/path/to/your/file.xlsx'
df = pd.read_excel(excel_file_path, sheet_name='Sheet1')  # 讀取指定的工作表

# (可選) 將 DataFrame 寫入 Excel 檔案
output_excel_file_path = '/content/drive/MyDrive/path/to/output/file.xlsx'
df.to_excel(output_excel_file_path, index=False, sheet_name='Sheet1')

print(df.head())

TXT 檔案

推薦方法: 使用 Python 內建的檔案 I/O 功能。

範例程式碼:


# 讀取 TXT 檔案
txt_file_path = '/content/drive/MyDrive/path/to/your/file.txt'
with open(txt_file_path, 'r', encoding='utf-8') as f:
    content = f.read()
    print(content)

# (可選) 寫入 TXT 檔案
output_txt_file_path = '/content/drive/MyDrive/path/to/output/file.txt'
with open(output_txt_file_path, 'w', encoding='utf-8') as f:
    f.write("Hello from Colab!\nThis is a new line.")

總結

透過本文介紹的方法,您可以輕鬆地在 Colab 中與 Google 雲端硬碟整合,並讀寫 Google Sheets、Excel 和 TXT 檔案。 善用這些技巧,可以讓您的 Colab 專案更具彈性和便利性。 無論是資料分析、機器學習還是其他應用,都能更有效率地進行!

張貼留言

較新的 較舊