deepseek: 批量处理脚本
import os
import shutil
import subprocess
from pathlib import Pathdef process_directory(directory, target_base):"""处理单个目录"""print(f"\n处理目录: {directory}")# 获取目录下所有文件files = []for f in Path(directory).iterdir():if f.is_file():# 排除 modeling_tf_ 前缀的文件if not f.name.startswith("modeling_tf_"):files.append(f)if not files:print(f"目录 {directory} 中没有符合条件的文件,跳过")return# 按文件大小排序(从大到小)files.sort(key=lambda f: f.stat().st_size, reverse=True)# 取最大的两个文件top_files = files[:2]print(f"找到最大文件: {[f.name for f in top_files]}")# 处理每个文件for file in top_files:# 提取 AAA 部分if file.name.startswith("modeling_") and file.name.endswith(".py"):aaa = file.name[9:-3] # 去掉 "modeling_" 和 ".py"else:print(f"跳过非标准文件名: {file.name}")continueprint(f"\n处理文件: {file.name} (AAA = {aaa})")# 创建 AAA_clx 目录aaa_clx = Path(f"{aaa}_clx")if not aaa_clx.exists():aaa_clx.mkdir()print(f"创建目录: {aaa_clx}")# 复制文件到 AAA_clxdest_file = aaa_clx / file.nameshutil.copy(file, dest_file)print(f"复制文件到: {dest_file}")# 进入目录并运行脚本os.chdir(aaa_clx)print(f"当前工作目录: {os.getcwd()}")# 运行 splitPy3.py 脚本try:result = subprocess.run(["python311", "/tmp/splitPy3.py", file.name],check=True,capture_output=True,text=True)print(f"脚本输出:\n{result.stdout}")if result.stderr:print(f"脚本错误:\n{result.stderr}")except subprocess.CalledProcessError as e:print(f"运行脚本失败: {e}")print(f"错误输出:\n{e.stderr}")# 返回上级目录os.chdir("..")print(f"返回目录: {os.getcwd()}")# 复制整个目录到目标位置target_dir = Path(target_base) / "modelToclx" / aaa_clxif not target_dir.parent.exists():target_dir.parent.mkdir(parents=True, exist_ok=True)if target_dir.exists():print(f"目标目录已存在,覆盖: {target_dir}")shutil.rmtree(target_dir)shutil.copytree(aaa_clx, target_dir)print(f"复制到目标位置: {target_dir}")def main():# 目标目录target_base = "/Users/sujingqiao/Documents/homepage/ENV/myenv/source/transformers/src/transformers/models"# 获取当前目录下所有子目录directories = [d for d in Path.cwd().iterdir() if d.is_dir()]if not directories:print("当前目录下没有子目录")returnprint(f"找到 {len(directories)} 个子目录")# 处理每个目录for directory in directories:process_directory(directory, target_base)print("\n所有处理完成!")if __name__ == "__main__":main()
需求:
mkdir AAA_clx cp modeling_AAA.py AAA_clx cd AAA_clx python311 /tmp/splitPy3.py modeling_AAA.py cd .. cp -rf AAA_clx /Users/sujingqiao/Documents/homepage/ENV/myenv/source/transformers/src/transformers/models/modelToclx 写一个python脚本,批量化操作 上面这些命令, 其中 AAA 是遍历当前目录下各个文件夹,找到 按大小排序最大两个,且除掉modeling_tf_为前缀那个文件