GoogleDrive 上のファイルは https://drive.google.com/... のような URL で表される。
このURL に対して wget を行うと、ファイルサイズが大きい場合にウィルススキャン警告画面が表示されてうまくダウンロードできないことがある。そのような場合は gdown を使う。
下の例では、Google Drive 上のファイル名は CycleGAN.py である。
GOOGLEDRIVE_URL = 'https://drive.google.com/uc?id=1aNvpPDNeDWYQFu_PA1kOtFlzcO5seHky'
FILENAME = 'CycleGAN.py'
# download するファイルの古い版があれば消去しておく
! rm -f {FILENAME}
# download from GoogleDrive
! gdown {GOOGLEDRIVE_URL}
# download したファイルを確認する
! ls -l {FILENAME}
# 次の実験のため download したファイルを消去しておく
! rm -f {FILENAME}
# download するファイルの古い版があれば消去しておく
! rm -f {FILENAME}
# install gdown libray
! pip install gdown
import gdown
def gdown_download(url, filename):
try:
gdown.download(url, filename, quiet=False)
except Exception as e:
print(f'Error {e}')
gdown_download(GOOGLEDRIVE_URL, FILENAME)
! ls -l {FILENAME}
# 次の実験のため download したファイルを消去しておく
! rm -f {FILENAME}
GITHUB_REPO_PREFIX = 'https://github.com/YoshihisaNitta/GoogleColab'
GITHUB_URL = f'{GITHUB_REPO_PREFIX}.git'
GITHUB_FILE_URL = f'{GITHUB_REPO_PREFIX}/blob/main/models/CycleGAN.py'
# download するファイルの古い版があれば消去しておく
! rm -rf GoogleColab
# git clone コマンドを実行する
! git clone {GITHUB_URL}
! ls -lR GoogleColab
# 次の実験ため download したファイルを消去しておく
! rm -rf GoogleColab
# download するファイルの古い版があれば消去しておく
! rm -rf GoogleColab
# GitPython ライブラリをインストールする
! pip install gitpython
# python の関数を定義する
from git import Repo
def git_clone(repo_url, dest_dir):
try:
Repo.clone_from(repo_url, dest_dir)
except Exception as e:
print(f'Error {e}')
# Python の関数で git clone を行う。
git_clone(GITHUB_URL, 'GoogleColab')
! ls -lR GoogleColab
# 次の実験のため download したファイルを消去しておく
! rm -rf GoogleColab
# download するファイルの古い版があれば消去しておく
! rm -rf GoogleColab
# dulwich ライブラリをインストールする
! pip install dulwich
# python の関数を定義する。
from dulwich import porcelain
def git_clone(repo_url, dest_dir):
try:
# dulwichのporcelain APIを使用してリポジトリをクローン
porcelain.clone(repo_url, dest_dir)
print(f"Repository cloned successfully to {dest_dir}")
except Exception as e:
print(f"Error cloning repository: {e}")
git_clone(GITHUB_URL, 'GoogleColab')
! ls -lR GoogleColab
# 次の実験のため download したファイルを消去しておく
! rm -rf GoogleColab
# download するファイルの古い版があれば消去しておく
! rm -rf GoogleColab
# requests ライブラリをインストールする
! pip install requests
import requests
import zipfile
import io
def download_repo_as_zip(repo_url, dest_dir):
# GitHubリポジトリのZIPダウンロードURLを構築
zip_url = repo_url.rstrip('/') + "/archive/refs/heads/main.zip"
try:
response = requests.get(zip_url)
response.raise_for_status() # HTTPエラーチェック
# ZIPファイルをメモリ上で展開
with zipfile.ZipFile(io.BytesIO(response.content)) as zip_ref:
zip_ref.extractall(dest_dir)
print(f"Repository downloaded and extracted to {dest_dir}")
except Exception as e:
print(f"Error downloading repository: {e}")
download_repo_as_zip(GITHUB_REPO_PREFIX, 'GoogleColab')
! ls -lR GoogleColab
# 次の実験のため download したファイルを消去しておく
! rm -rf GoogleColab
WGET_PREFIX = 'https://nw.tsuda.ac.jp/lec/GoogleColab/pub'
WGET_URL = f'{WGET_PREFIX}/models/CycleGAN.py'
TARGET_DIR = './nw'
# download するファイルの古い版があれば消去しておく
! rm -rf {TARGET_DIR}
# Download folder
! mkdir -p {TARGET_DIR}
! wget -nd {WGET_URL} -P {TARGET_DIR}
! ls -l {TARGET_DIR}
# 次の実験のため download したファイルを消去しておく
! rm -rf {TARGET_DIR}
# download するファイルの古い版があれば消去しておく
! rm -rf {TARGET_DIR}
# requests ライブラリをインストールする
! pip install requests
import requests
import os
def download_file(url, dest_dir):
# url からファイル名を取得する
filename = url.split("/")[-1]
local_path = os.path.join(dest_dir, filename)
try:
response = requests.get(url, stream=True)
response.raise_for_status() # HTTPエラーチェック
# ディレクトリが存在しなければ作成する
os.makedirs(dest_dir, exist_ok=True)
# 保存する
with open(local_path, "wb") as file:
for chunk in response.iter_content(chunk_size=8192):
file.write(chunk)
except Exception as e:
print(f"Error : {e}")
download_file(WGET_URL, TARGET_DIR)
! ls -l {TARGET_DIR}
# 次の実験のため download したファイルを消去しておく
! rm -rf {TARGET_DIR}