Python 实用自动化脚本精选:本地文件批量整理与文本处理

日常工作和学习中,经常会遇到机械重复的文件处理需求,例如按规则重命名数百张截图、解析杂乱的日志、或者提取 CSV 中的某几列数据。使用 Python 标准库(免额外 pip 安装)即可轻松搞定。

一、零第三方依赖:按文件扩展名自动归类整理

以下脚本能自动遍历目标文件夹,将散落的文件按类型自动移动到对应的子分类目录中:

import os
import shutil
from pathlib import Path

def organize_folder(target_dir: str):
    base_path = Path(target_dir)
    if not base_path.exists():
        print(f"目标路径不存在: {target_dir}")
        return

    # 预设常见分类映射
    ext_mapping = {
        'Images': ['.jpg', '.jpeg', '.png', '.gif', '.webp'],
        'Docs': ['.pdf', '.docx', '.txt', '.md', '.xlsx'],
        'Archives': ['.zip', '.tar', '.gz', '.rar', '.7z'],
        'Codes': ['.py', '.js', '.html', '.css', '.json']
    }

    for item in base_path.iterdir():
        if item.is_file():
            ext = item.suffix.lower()
            category = 'Others'
            for cat, extensions in ext_mapping.items():
                if ext in extensions:
                    category = cat
                    break
            
            dest_folder = base_path / category
            dest_folder.mkdir(exist_ok=True)
            shutil.move(str(item), str(dest_folder / item.name))
            print(f"已归类: {item.name} -> {category}")

if __name__ == '__main__':
    # 填入需要整理的本地下载目录路径
    organize_folder("./downloads")

二、JSON 列表快速转 CSV 表格

爬虫或 API 拿到的结构化 JSON 数据,转成 Excel / CSV 方便筛选查看:

import json
import csv

def json_to_csv(json_path: str, csv_path: str):
    with open(json_path, 'r', encoding='utf-8') as f:
        data = json.load(f)
    
    if not data or not isinstance(data, list):
        print("JSON 格式必须为包含对象的列表")
        return

    headers = list(data[0].keys())

    with open(csv_path, 'w', newline='', encoding='utf-8-sig') as f:
        writer = csv.DictWriter(f, fieldnames=headers)
        writer.writeheader()
        writer.writerows(data)
    
    print(f"转换完成:共导出 {len(data)} 条数据至 {csv_path}")

经验与总结

在编写自动化小脚本时,优先考虑 pathlib.Path 替代传统的 os.path,面向对象的语法更加清晰直观,且天然跨 Windows 与 Linux 路径分隔符。保持代码短小精悍,能极大提升效率。