# python tutorial 用 sample zip
#URL = "https://www.learnpython.org/static/media.zip"
URL = "https://github.com/YoshihisaNitta/GoogleColab/raw/refs/heads/main/data/tsuda_sample.zip"
ZIPFILE = URL.split("/")[-1]
FOLDER = ZIPFILE.split(".")[0]
# Web サーバからファイルをダウンロードする python の関数を定義する。
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}")
# zip ファイルをダウンロードする。
download_file(URL, "./data")
# download した zip ファイルを確認する。
! ls -l data
! rm -rf data
! (cd data; unzip {ZIPFILE})
! ls -lR data
# 次の実験のため、展開したファイルを消去しておく。
! (cd data; rm -rf {FOLDER})
! ls -lR data
import zipfile
import os
def extract_zip(zip_path, extract_to=None):
"""
Extracts a ZIP file to the specified directory.
Parameters:
zip_path (str): Path to the ZIP file.
extract_to (str): Directory where the files will be extracted.
If None, extracts to the same directory as the ZIP file.
Returns:
str: The path to the directory where files were extracted.
Raises:
FileNotFoundError: If the ZIP file does not exist.
zipfile.BadZipFile: If the file is not a valid ZIP file.
"""
# Check if the ZIP file exists
if not os.path.exists(zip_path):
raise FileNotFoundError(f"The file '{zip_path}' does not exist.")
# Determine the extraction directory
if extract_to is None:
extract_to = os.path.splitext(zip_path)[0] # Remove .zip extension to create a folder
# Create the extraction directory if it doesn't exist
os.makedirs(extract_to, exist_ok=True)
# Extract the ZIP file
with zipfile.ZipFile(zip_path, 'r') as zip_ref:
zip_ref.extractall(extract_to)
print(f"Files extracted to: {extract_to}")
return extract_to
extract_zip(os.path.join("data", ZIPFILE), "data")
! ls -lR data
# 次の実験のため、展開したファイルを消去しておく。
! (cd data; rm -rf {FOLDER})