▼点击下方卡片关注我
▲点击上方卡片关注我
平时工作离不开压缩文件、重命名文件、转换格式、生成报表这些繁琐的重复性工作。要是每次都手动处理,不光费时费力还容易出错。我写了个Python小工具,几行代码就能搞定这些烦心事,让你从重复劳动中解脱出来。
核心功能实现
1import os
2import zipfile
3import pandas as pd
4from datetime import datetime
5from pathlib import Path
7class FileProcessor:
8def __init__(self, work_dir):
9self.work_dir = Path(work_dir)
10self.timestamp = datetime.now().strftime(“%Y%m%d”)
12def batch_rename(self, prefix):
13“”“批量重命名文件”“”
14for file in self.work_dir.iterdir():
15if file.is_file():
16new_name = f“{prefix}_{self.timestamp}_{file.name}”
17file.rename(self.work_dir / new_name)
19def create_zip(self, zip_name):
20“”“压缩文件夹”“”
21with zipfile.ZipFile(f“{zip_name}.zip”, 'w') as zf:
22for file in self.work_dir.rglob(“*”):
23if file.is_file():
24zf.write(file, file.name)
26def generate_report(self):
27“”“生成文件清单报表”“”
28files_info = []
29for file in self.work_dir.rglob(“*”):
30if file.is_file():
31info = {
32“文件名”: file.name,
33“大小(KB)”: round(file.stat().st_size/1024, 2),
34“修改时间”: datetime.fromtimestamp(file.stat().st_mtime)
35}
36files_info.append(info)
38df = pd.DataFrame(files_info)
39df.to_excel(f“文件清单_{self.timestamp}.xlsx”, index=False)
实战应用
这么用就对啦:
1# 实例化处理器
2processor = FileProcessor(“工作目录”)
4# 批量重命名文件
5processor.batch_rename(“项目A”)
7# 压缩文件
8processor.create_zip(“交付包”)
10# 生成报表
11processor.generate_report()
⚠️ 小贴士:
- 用之前记得备份重要文件,以防万一
- 处理大量文件时注意内存占用
- 文件名不要包含特殊字符,容易出问题
进阶玩法
还可以加点花样,比如:
1class AdvancedProcessor(FileProcessor):
2def filter_by_type(self, file_type):
3“”“按文件类型筛选”“”
4return [f for f in self.work_dir.rglob(f“*.{file_type}”)]
6def organize_by_date(self):
7“”“按日期归类文件”“”
8for file in self.work_dir.iterdir():
9if file.is_file():
10date = datetime.fromtimestamp(file.stat().st_mtime)
11date_folder = self.work_dir / date.strftime(“%Y-%m”)
12date_folder.mkdir(exist_ok=True)
13file.rename(date_folder / file.name)
15# 用法示例
16adv_processor = AdvancedProcessor(“工作目录”)
17excel_files = adv_processor.filter_by_type(“xlsx”)
18adv_processor.organize_by_date()
代码详解
这个工具的设计思路很简单:用 Path 对象处理文件路径,避免跨平台兼容性问题;用 类 来组织代码,方便扩展新功能;加入 错误处理 和 日志记录 ,提高程序健壮性。
⚠️ 小贴士:
- Path比os.path好用,强烈推荐
- 文件操作要加try-except,别裸奔
- 日志记录方便排查问题,别省这一步
常见坑点
写这种工具最容易踩坑的地方:
- 文件路径用反斜杠,在Windows上炸锅
- 中文路径编码问题,各种乱码
- 文件被占用,删不掉改不了
- 内存疯涨,电脑死机
我整理了个完整版的代码,加了异常处理和日志记录:
1import logging
2from pathlib import Path
3from typing import List
5logging.basicConfig(level=logging.INFO)
6logger = logging.getLogger(__name__)
8class SafeProcessor(FileProcessor):
9def safe_rename(self, prefix: str) -> None:
10“”“安全的重命名操作”“”
11try:
12self.batch_rename(prefix)
13logger.info(“重命名完成”)
14except Exception as e:
15logger.error(f“重命名失败: {str(e)}”)
17def safe_zip(self, name: str) -> None:
18“”“安全的压缩操作”“”
19try:
20self.create_zip(name)
21logger.info(“压缩完成”)
22except Exception as e:
23logger.error(f“压缩失败: {str(e)}”)
这套工具我自己用了大半年,成功解放了双手。关键是代码简单,容易改,想加啥功能自己改改就行。
⚠️ 小贴士:
- 代码结构要清晰,方便维护
- 边界条件要考虑全面
- 多写注释,别埋坑
人生苦短,何必加班。用Python来处理这些体力活,把时间留给更有意思的事情。
推 荐 阅 读
PyAutoGUI:自动化控制神器,这个Python库让你解放双手! Django,一个全栈开发者的 Python 终极武器!
点赞分享
让钱和爱流向你