DataSet-to-zip / app.py
soiz1's picture
Update app.py
ecd93dc verified
raw
history blame
1.4 kB
import os
import zipfile
from huggingface_hub import hf_hub_download
import gradio as gr
# Hugging Faceからデータセットをダウンロードする関数
def download_and_zip(repo_id, folder_name):
# Hugging Face Hubから対象ファイルをダウンロード
dataset_path = hf_hub_download(repo_id=repo_id)
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 "指定されたフォルダが見つかりません"
# 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()