DataSet-to-zip / app.py
soiz1's picture
Update app.py
949f5b0 verified
import os
import zipfile
import datasets
import gradio as gr
# Hugging Faceのデータセットをダウンロードして指定されたフォルダをZIP圧縮する関数
def download_and_zip(repo_id, folder_name):
try:
# データセットをHugging Face Hubからダウンロード
dataset = datasets.load_dataset(repo_id)
# ダウンロードされたデータセットのパスを取得
dataset_path = dataset.data_files['train'] # 'train' データセットを例にします。必要に応じて変更
# フォルダのパス
folder_path = os.path.join(dataset_path, folder_name)
# ZIP圧縮の保存先パス
zip_path = f"{folder_name}.zip"
# フォルダが存在するかをチェック
if os.path.exists(folder_path) and os.path.isdir(folder_path):
# フォルダをZIP圧縮する
with zipfile.ZipFile(zip_path, 'w', zipfile.ZIP_DEFLATED) as zipf:
for root, dirs, files in os.walk(folder_path):
for file in files:
zipf.write(os.path.join(root, file), os.path.relpath(os.path.join(root, file), folder_path))
return zip_path
else:
return "指定されたフォルダが見つかりません"
except Exception as e:
return f"エラー: {str(e)}"
# Gradioインターフェースの作成
def interface(repo_id, folder_name):
return download_and_zip(repo_id, folder_name)
# Gradioインターフェースのセットアップ
gr.Interface(
fn=interface,
inputs=["text", "text"],
outputs="file",
live=True,
description="Hugging Faceのデータセットの指定フォルダをZIPに圧縮します。"
).launch()