批量处理器:大批量文档自动化与并行执行 - Openclaw Skills

作者:互联网

2026-04-16

AI教程

什么是 批量处理器?

批量处理器是专为需要管理大批量文档操作的 Openclaw Skills 用户设计的专业自动化技能。它通过利用多核并行处理,为并发转换、转换或分析数百个文件提供了一个强大的框架。对于需要可扩展解决方案来处理重复性文件任务,且不愿牺牲速度或可靠性的开发人员和办公专业人士来说,该工具至关重要。

通过利用进程池和检查点等高级 Python 模式,此技能可确保高效执行大规模作业,并能从中断中平稳恢复。无论您是处理复杂的文档转换还是简单的文件整理,此技能都能简化批量数据处理的整个生命周期。

下载入口:https://github.com/openclaw/skills/tree/main/skills/lijie420461340/batch-processor

安装与下载

1. ClawHub CLI

从源直接安装技能的最快方式。

npx clawhub@latest install batch-processor

2. 手动安装

将技能文件夹复制到以下位置之一

全局模式 ~/.openclaw/skills/ 工作区 /skills/

优先级:工作区 > 本地 > 内置

3. 提示词安装

将此提示词复制到 OpenClaw 即可自动安装。

请帮我使用 Clawhub 安装 batch-processor。如果尚未安装 Clawhub,请先安装(npm i -g clawhub)。

批量处理器 应用场景

  • 将大批量 PDF 转换为 Word 文档或其他可编辑格式。
  • 从整个图像目录中提取结构化文本或 OCR 数据。
  • 在复杂的目录结构中自动化文件整理、重命名和元数据更新。
  • 对文档样式进行批量更新,包括页眉、页脚和模板。
批量处理器 工作原理
  1. 扫描指定的输入目录,查找符合定义的 glob 模式的文件。
  2. 使用配置数量的并行工作进程初始化进程池,以最大化 CPU 利用率。
  3. 将文件处理任务分配给工作进程,执行提取或转换等特定逻辑。
  4. 使用集成进度条实时监控执行进度。
  5. 记录每个文件的状态并将状态保存到检查点文件,以确保工作流可安全恢复。

批量处理器 配置指南

要在您的 Openclaw Skills 环境中开始使用此技能,请通过 pip 安装所需的文档处理依赖项:

pip install python-docx openpyxl python-pptx reportlab jinja2

批量处理器 数据架构与分类体系

组件 描述
输入目录 包含批量处理目标文件的源路径。
文件模式 用于过滤输入文件的标准 glob 模式(例如 *.docx)。
检查点文件 一个基于 JSON 的状态文件,用于跟踪已处理的项目,以便安全恢复操作。
结果架构 一个包含文件路径、成功状态和用于调试的特定错误日志的结构化列表。
name: batch-processor
description: Process multiple documents in bulk with parallel execution
author: claude-office-skills
version: "1.0"
tags: ['batch', 'bulk', 'parallel', 'automation']
models: [claude-sonnet-4, claude-opus-4]
tools: [computer, code_execution, file_operations]
library:
  name: Custom
  url: https://github.com/claude-office-skills/skills
  stars: N/A

Batch Processor Skill

Overview

This skill enables efficient bulk processing of documents - convert, transform, extract, or analyze hundreds of files with parallel execution and progress tracking.

How to Use

  1. Describe what you want to accomplish
  2. Provide any required input data or files
  3. I'll execute the appropriate operations

Example prompts:

  • "Convert 100 PDFs to Word documents"
  • "Extract text from all images in a folder"
  • "Batch rename and organize files"
  • "Mass update document headers/footers"

Domain Knowledge

Batch Processing Patterns

Input: [file1, file2, ..., fileN]
         │
         ▼
    ┌─────────────┐
    │  Parallel   │  ← Process multiple files concurrently
    │  Workers    │
    └─────────────┘
         │
         ▼
Output: [result1, result2, ..., resultN]

Python Implementation

from concurrent.futures import ProcessPoolExecutor, as_completed
from pathlib import Path
from tqdm import tqdm

def process_file(file_path: Path) -> dict:
    """Process a single file."""
    # Your processing logic here
    return {"path": str(file_path), "status": "success"}

def batch_process(input_dir: str, pattern: str = "*.*", max_workers: int = 4):
    """Process all matching files in directory."""
    
    files = list(Path(input_dir).glob(pattern))
    results = []
    
    with ProcessPoolExecutor(max_workers=max_workers) as executor:
        futures = {executor.submit(process_file, f): f for f in files}
        
        for future in tqdm(as_completed(futures), total=len(files)):
            file = futures[future]
            try:
                result = future.result()
                results.append(result)
            except Exception as e:
                results.append({"path": str(file), "error": str(e)})
    
    return results

# Usage
results = batch_process("/documents/invoices", "*.pdf", max_workers=8)
print(f"Processed {len(results)} files")

Error Handling & Resume

import json
from pathlib import Path

class BatchProcessor:
    def __init__(self, checkpoint_file: str = "checkpoint.json"):
        self.checkpoint_file = checkpoint_file
        self.processed = self._load_checkpoint()
    
    def _load_checkpoint(self):
        if Path(self.checkpoint_file).exists():
            return json.load(open(self.checkpoint_file))
        return {}
    
    def _save_checkpoint(self):
        json.dump(self.processed, open(self.checkpoint_file, "w"))
    
    def process(self, files: list, processor_func):
        for file in files:
            if str(file) in self.processed:
                continue  # Skip already processed
            
            try:
                result = processor_func(file)
                self.processed[str(file)] = {"status": "success", **result}
            except Exception as e:
                self.processed[str(file)] = {"status": "error", "error": str(e)}
            
            self._save_checkpoint()  # Resume-safe

Best Practices

  1. Use progress bars (tqdm) for user feedback
  2. Implement checkpointing for long jobs
  3. Set reasonable worker counts (CPU cores)
  4. Log failures for later review

Installation

# Install required dependencies
pip install python-docx openpyxl python-pptx reportlab jinja2

Resources

  • Custom Repository
  • Claude Office Skills Hub

相关推荐