import json import os import shutil from loguru import logger # 将字典数据保存为 JSON 文件 def save_json(data: list, file_path: str): with open(file_path, "w") as f: json.dump(data, f) def load_json(file_path: str): with open(file_path, "r") as f: return json.load(f) def is_dir_empty(path: str) -> bool: return len(os.listdir(path)) == 0 def remove_files_in_dir(folder_path: str): for filename in os.listdir(folder_path): file_path = os.path.join(folder_path, filename) try: if os.path.isfile(file_path) or os.path.islink(file_path): os.unlink(file_path) # 删除文件 elif os.path.isdir(file_path): shutil.rmtree(file_path) # 递归删除子文件夹及其中文件 except Exception as e: print(f"Failed to delete {file_path}. Reason: {e}") def get_files_in_dir(dir): file_list = [] for root, dirs, files in os.walk(dir): for file in files: file_list.append(os.path.join(root, file)) return file_list def create_dir(dir): if not os.path.exists(dir): os.makedirs(dir) logger.debug(f'文件夹创建成功:{dir}') else: logger.debug(f'文件夹已经存在:{dir}') def get_filename(path): filename = os.path.basename(path) return filename def move_files(src_dir, dst_dir): for file_name in os.listdir(src_dir): src_file = os.path.join(src_dir, file_name) dst_file = os.path.join(dst_dir, file_name) shutil.move(src_file, dst_file) def remove_ext(file_name): name, ext = os.path.splitext(file_name) return name