批运行脚本
import argparseimport subprocessfrom pathlib import Pathdef main():parser argparse.ArgumentParser(description批量处理指定目录下所有文件并对每个文件执行 pwlSum.py)parser.add_argument(input_dir,help需要批量处理的输入文件目录)parser.add_argument(-o, --output-dir,defaultNone,help总输出目录如果不指定则默认在每个输入文件所在目录下新建 pwl_output)parser.add_argument(--script,defaultpwlSum.py,helppwlSum.py 的路径默认是当前目录下的 pwlSum.py)parser.add_argument(--suffix,defaultNone,help只处理指定后缀的文件例如 .sp不指定则处理目录下所有普通文件)args parser.parse_args()input_dir Path(args.input_dir)script_path Path(args.script)if not input_dir.exists():raise FileNotFoundError(f找不到输入目录{input_dir})if not input_dir.is_dir():raise NotADirectoryError(f这不是一个目录{input_dir})if not script_path.exists():raise FileNotFoundError(f找不到脚本{script_path})files [p for p in input_dir.iterdir()if p.is_file()]if args.suffix:files [p for p in filesif p.suffix.lower() args.suffix.lower()]if not files:print(f[WARN] 目录下没有找到需要处理的文件{input_dir})returnprint(f[INFO] 找到 {len(files)} 个文件开始批量处理)success_count 0fail_count 0for file_path in sorted(files):print(f\n[RUN] 正在处理{file_path})cmd [python3,str(script_path),str(file_path),]if args.output_dir:output_dir Path(args.output_dir)output_dir.mkdir(parentsTrue, exist_okTrue)cmd.extend([-o, str(output_dir)])try:result subprocess.run(cmd,textTrue,capture_outputTrue,checkFalse)if result.stdout:print(result.stdout)if result.stderr:print([STDERR])print(result.stderr)if result.returncode 0:print(f[OK] 处理成功{file_path.name})success_count 1else:print(f[FAIL] 处理失败{file_path.name}返回码{result.returncode})fail_count 1except Exception as e:print(f[ERROR] 执行异常{file_path.name}原因{e})fail_count 1print(\n[DONE] 批量处理结束)print(f[INFO] 成功{success_count})print(f[INFO] 失败{fail_count})if __name__ __main__:main()改1:files [p for p in input_dir.iterdir()if p.is_file() and p.suffix.lower() .sp]