Spaces:
Building
Building
import os | |
import shutil | |
import zipfile | |
EN_US = os.getenv("LANG") != "zh_CN.UTF-8" | |
TMP_DIR = "./__pycache__" | |
HEADER = { | |
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.0.0 Safari/537.36 Edg/132.0.0.0", | |
} | |
def mk_dir(dir_path: str): | |
if not os.path.exists(dir_path): | |
os.makedirs(dir_path) | |
def clean_dir(dir_path: str): | |
if os.path.exists(dir_path): | |
shutil.rmtree(dir_path) | |
os.makedirs(dir_path) | |
def unzip(zip_path: str, extract_to: str): | |
mk_dir(extract_to) | |
# 打开ZIP文件 | |
with zipfile.ZipFile(zip_path, "r") as zip_ref: | |
# 解压文件 | |
zip_ref.extractall(extract_to) | |
def compress(folder_path: str, zip_file: str): | |
# 确保文件夹存在 | |
if not os.path.exists(folder_path): | |
raise ValueError(f"错误: 文件夹 '{folder_path}' 不存在") | |
# 打开 ZIP 文件,使用 'w' 模式表示写入 | |
with zipfile.ZipFile(zip_file, "w", zipfile.ZIP_DEFLATED) as zipf: | |
# 遍历文件夹中的文件和子文件夹 | |
for root, _, files in os.walk(folder_path): | |
for file in files: | |
file_path = os.path.join(root, file) | |
# 计算相对路径,保留文件夹的根目录 | |
relative_path = os.path.relpath(file_path, folder_path) | |
zipf.write( | |
file_path, | |
arcname=os.path.join(os.path.basename(folder_path), relative_path), | |
) | |