造个工具 · 第3篇 | 根据Excel文件名清单,批量生成PPTX、PDF、MP4,并且保证名称、类型、大小满足要求。
以下这些场景需要:
这时候就需要找工具或者自己写脚本了。今天制作的这个Python工具,命名为 FakeFileMaker,它就是这样的工具——按Excel清单,批量生成PPTX、PDF、MP4文件,并能设定文件名称、格式以及文件大小的范围。
工具已开源:https://github.com/ICodeWR/FakeFileMaker
FakeFileMaker是一个Python写的命令行工具,核心功能是:读取Excel里的文件名清单,然后批量生成对应的PPTX、PDF、MP4文件。
项目地址:https://github.com/ICodeWR/FakeFileMaker
| 三种文件格式 | |
| 智能识别 | |
| 文件大小范围 | |
| 增量续传 | |
| 并行加速 | |
| 交互式向导 | --interactive一步步引导 |
# 克隆项目git clone https://github.com/ICodeWR/FakeFileMaker.gitcd FakeFileMaker# 创建虚拟环境(推荐)python -m venv venv.\venv\Scripts\Activate.ps1 # Windows# source venv/bin/activate # Mac/Linux# 安装依赖pip install -r requirements.txt注意:如果要生成MP4,建议提前安装ffmpeg并加入系统PATH。没有ffmpeg也能跑,但会使用moviepy回退方案,速度慢很多。
生成一个示例Excel:
python generate_sample.py会生成 sample.xlsx,内容如下:
也可以自己手动(按需)创建Excel,只需要有一列文件名即可。表头支持:file_name、filename、文件名、名称、name、文件名称。
基础用法:
# 生成三种类型python main.py -e sample.xlsx -o ./output -t pptx pdf mp4# 只生成PPTXpython main.py -e sample.xlsx -o ./output -t pptx# 指定PPTX页数范围(2~5页)python main.py -e sample.xlsx -o ./output -t pptx --pptx-min 2 --pptx-max 5运行后,./output 目录下会生成:
output/├── 项目报告.pptx├── 项目报告.pdf├── 项目报告.mp4├── 季度总结.pptx├── 季度总结.pdf├── 季度总结.mp4├── ...└── 学习笔记.mp4FakeFileMaker采用分层模块化架构,从上到下分为四层:


项目中的 generators/common.py 实现了智能列检测功能,能自动识别文件名所在的列:

file_name、filename、文件名、名称、name、文件名称所有类型生成器 (pptx_gen.py, pdf_gen.py, mp4_gen.py) 遵循统一的接口规范,便于扩展新的文件类型:
generate_pptx(path, min_pages, max_pages, content) | ||
generate_pdf(path, min_pages, max_pages, content) | ||
generate_mp4(path, min_duration, max_duration) |
假设我要生成10份产品介绍PPTX,每份5~10页,控制在500KB~1MB之间。
文件名清单:
python main.py -e products.xlsx -o ./output -t pptx --pptx-min 5 --pptx-max 10 --target-size 500K-1M生成的PPTX文件包含:
项目中MP4生成部分采用三层回退链路和模板缓存机制:
首次运行会生成一个120秒的噪声视频模板(约45MB),保存在 templates/template.mp4。后续生成时直接从模板截取或循环,速度极快。
--excel | -e | -e sample.xlsx | |
--output | -o | -o ./output | |
--type | -t | -t pptx pdf mp4 |
--pptx-min--pptx-max | ||
--pdf-min--pdf-max | ||
--mp4-min--mp4-max |
--parallel N | |
--incremental | |
--target-size | 500K-2M |
--force | |
--interactive | |
--config |
十、常见问题Q1: MP4生成失败,提示ffmpeg找不到
安装ffmpeg并加入系统PATH:
Q2: PDF中文显示为方框
系统中缺少中文字体。
本文属于「造个工具」系列
已发布:
你平时需要批量生成测试文件吗?一般用的是什么方法?欢迎留言讨论 👇
作者简介:码上工坊,探索用编程为己赋能,定期分享编程知识和项目实战经验。持续学习、适应变化、记录点滴、复盘反思、成长进步。
重要提示:本文主要是记录自己的学习与实践过程,所提内容或者观点仅代表个人意见,只是我以为的,不代表完全正确,欢迎交流讨论。