本文目录导读:

是的,实用脚本非常适合批量处理任务!脚本的核心优势之一就是自动化重复性操作,可以帮你节省大量时间,下面我详细解释如何在各种场景下实现批量处理。
批量处理的常见脚本类型
文件操作类
# 批量重命名文件(将所有 .txt 改为 .md)
for file in *.txt; do
mv "$file" "${file%.txt}.md"
done
# 批量压缩图片(使用 ImageMagick)
for img in *.jpg; do
convert "$img" -resize 50% "compressed_$img"
done
数据处理类
# Python 批量处理 CSV 文件
import pandas as pd
import glob
files = glob.glob('data/*.csv')
for file in files:
df = pd.read_csv(file)
df['processed'] = df['value'] * 2 # 假设某种处理
df.to_csv(f'processed_{file}')
网络请求类
# 批量下载文件
import requests
urls = ['url1.com', 'url2.com', 'url3.com']
for url in urls:
response = requests.get(url)
with open(f'downloads/{url.split("/")[-1]}', 'wb') as f:
f.write(response.content)
实用脚本框架示例
通用批量处理模板(Bash)
#!/bin/bash
# 配置参数
INPUT_DIR="./input"
OUTPUT_DIR="./output"
FILE_PATTERN="*.txt"
# 创建输出目录
mkdir -p "$OUTPUT_DIR"
# 遍历所有文件
for file in "$INPUT_DIR"/$FILE_PATTERN; do
if [ -f "$file" ]; then
filename=$(basename "$file")
echo "处理: $filename"
# 在这里写你的处理逻辑
# 复制、转换、压缩等
cp "$file" "$OUTPUT_DIR/processed_$filename"
fi
done
echo "批量处理完成!共处理了 ${#files[@]} 个文件"
带进度条的 Python 脚本
import os
import time
from tqdm import tqdm
def batch_process(files, callback):
"""通用批量处理带进度显示"""
for file in tqdm(files, desc="处理进度"):
callback(file) # 执行你的自定义处理函数
time.sleep(0.1) # 模拟处理耗时
# 使用示例
def my_processor(file_path):
print(f"处理: {file_path}")
# 实际处理代码...
files = [f"file_{i}.txt" for i in range(100)]
batch_process(files, my_processor)
关键技巧
错误处理与日志
# 记录处理日志
log_file="batch_$(date +%Y%m%d_%H%M%S).log"
echo "开始批量处理: $(date)" > "$log_file"
for file in *.txt; do
if ! process_file "$file" 2>> "$log_file"; then
echo "错误: $file 处理失败" | tee -a "$log_file"
else
echo "成功: $file" >> "$log_file"
fi
done
并行处理加速
# 使用多线程加速批量处理
from concurrent.futures import ThreadPoolExecutor
def process_item(item):
# 处理单个项目...
return f"处理完成: {item}"
items = list(range(20))
with ThreadPoolExecutor(max_workers=4) as executor:
results = executor.map(process_item, items)
配置文件驱动
# config.yaml
batch:
input: "./data"
output: "./results"
pattern: "*.csv"
operations:
- type: "clean"
- type: "transform"
- type: "export"
# 读取配置并执行
import yaml
with open('config.yaml') as f:
config = yaml.safe_load(f)
# 然后根据配置执行批量操作
实用推荐
现成工具组合(适用大多数场景)
- Linux/Mac:
find+xargs或parallel命令 - Windows: PowerShell 的
ForEach-Object - 跨平台: Python +
pathlib/glob模块
最佳实践总结
- ✅ 先在小样本上测试
- ✅ 添加进度显示(尤其处理大量文件时)
- ✅ 做好错误处理和日志记录
- ✅ 使用绝对路径避免位置依赖
- ✅ 考虑并发处理提高效率
需要我针对你的具体场景(比如批量重命名、格式转换、数据清洗、文件下载等)提供一个定制脚本示例吗? 告诉我你要处理的内容类型和规模,我可以写一个完整的实用脚本模板。