Google Colabのスニペット集

このページは、Google Colabのスニペットなどをまとめる予定のページです。

目次

注意

  • このページを作ったひとが備忘のためにまとめているため網羅性はありません。

一覧

GPUの確認
!nvidia-smi

日時

タイムゾーンの変更 (コマンド)
!rm /etc/localtime
!ln -s /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
!date
タイムゾーンの変更 (Python 3.7)
import datetime
from dateutil.tz import gettz

d = datetime.datetime.now(gettz('Asia/Tokyo'))
print(d.strftime('%Y-%m-%d %H:%M:%S'))

ファイル

ファイルのアップロード
import os
from google.colab import files
import shutil

upload_folder = 'upload' # アップロードするフォルダ

if os.path.isdir(upload_folder):
    shutil.rmtree(upload_folder)

os.mkdir(upload_folder)

uploaded = files.upload()
for filename in uploaded.keys():
  dst_path = os.path.join(upload_folder, filename)
  print(f'move {filename} to {dst_path}')
  shutil.move(filename, dst_path)
フォルダをZIP圧縮してダウンロード
import os
from google.colab import files

target_dir = "results" # 圧縮するフォルダ
zip_filename = 'result.zip' # ZIPファイル名

if os.path.exists(zip_filename):
  os.remove(zip_filename)

os.system(f"zip -r -j {zip_filename} {target_dir}/*")
files.download(zip_filename)
画像の表示
from PIL import Image
img_path = 'example.jpg'
img = Image.open(img_path)
img
画像のグリッド表示
from PIL import Image
import matplotlib.pyplot as plt
import glob
import math

result_folder = 'results' # 画像フォルダ
image_paths = sorted(glob.glob(result_folder + '/*.jpg'))
count = len(image_paths)

fig = plt.figure(figsize=(20,20))
row = math.ceil(math.sqrt(count)) # 行数。画像数が50の場合8
col = math.ceil(count / row) # 列数。画像数が50の場合7
for i, img_path in enumerate(image_paths):
  ax = fig.add_subplot(row, col, i + 1)
  ax.axis('off')
  ax.imshow(Image.open(img_path))

fig.tight_layout()
plt.show()

Googleドライブ

ドライブのマウント
from google.colab import drive
drive.mount('/content/drive')

Google スプレッドシート

シートの値の読み込み
from google.colab import auth
auth.authenticate_user()

import gspread
from google.auth import default
creds, _ = default()

gc = gspread.authorize(creds)

workbook_key = '...' # ファイルのキー (URLにあるID。https://docs.google.com/spreadsheets/d/ の後ろ)
workbook = gc.open_by_key(workbook_key)
worksheet = workbook.get_worksheet(0)

rows = worksheet.get_all_values()
print(rows)

# DataFrame 出力
import pandas as pd
pd.DataFrame.from_records(rows)
シートの値の書き込み
from google.colab import auth
auth.authenticate_user()

import gspread
from google.auth import default
creds, _ = default()

gc = gspread.authorize(creds)
workbook_title = 'テストシート' # ファイルのタイトル
workbook = gc.create(workbook_title)
worksheet = workbook.get_worksheet(0)

cell_list = worksheet.range('A1:C2') # 書き込む範囲
for cell in cell_list:
  cell.value = 1 # 書き込み

worksheet.update_cells(cell_list) # 更新

Playwright

モジュールのインストール
!pip install playwright
!playwright install-deps
!playwright install webkit
!pip install nest-asyncio
実行
import nest_asyncio
nest_asyncio.apply()

# Example: https://github.com/microsoft/playwright-python
import asyncio
from playwright.async_api import async_playwright

async def main():
    async with async_playwright() as p:
        browser = await p.webkit.launch()
        page = await browser.new_page()

        await page.goto('http://whatsmyuseragent.org/')
        await page.screenshot(path=f'example.png')
        await browser.close()

asyncio.run(main())