Install
openclaw skills install ollie-file-processor通用文件处理技能,用于批量重命名和格式转换。当用户需要批量重命名文件(添加前缀/后缀、替换文本、编号重命名、正则表达式重命名)或转换文件格式(图片格式转换、PDF与图片互转、DOCX转PDF、Markdown转PDF)时使用此技能。
openclaw skills install ollie-file-processor此技能提供文件重命名和格式转换功能,用于批量处理文件的命名和格式。支持批量重命名操作和多种文件格式之间的转换。
当用户需要以下操作时使用此技能:
文件重命名:
格式转换:
确定重命名类型
add_prefix() 或 add_suffix()replace_text()rename_with_numbering()rename_with_regex()执行重命名
验证结果
确定转换类型
convert_images()convert_pdf_to_images()convert_images_to_pdf()convert_docx_to_pdf()convert_markdown_to_pdf()执行转换
验证结果
from scripts.rename_files import FileRenamer
# 为所有文件添加前缀
renamer = FileRenamer("/path/to/directory")
renamer.add_prefix("new_")
renamer.execute()
# 为所有文件添加后缀(在扩展名前)
renamer = FileRenamer("/path/to/directory")
renamer.add_suffix("_backup")
renamer.execute()
# 将文件名中的 "old" 替换为 "new"
renamer = FileRenamer("/path/to/directory")
renamer.replace_text("old", "new")
renamer.execute()
# 将文件按名称排序,重命名为 photo_001.jpg, photo_002.jpg 等
renamer = FileRenamer("/path/to/directory")
renamer.rename_with_numbering(
pattern="photo_{}.jpg",
start_num=1,
digits=3,
sort_by="name" # 也可为 "size" 或 "date"
)
renamer.execute()
# 使用正则表达式重命名
renamer = FileRenamer("/path/to/directory")
# 例如:将 "IMG_1234.jpg" 改为 "image_1234.jpg"
renamer.rename_with_regex(r"IMG_(\d+)", r"image_\1")
renamer.execute()
# 使用 dry_run 模式预览重命名效果
renamer = FileRenamer("/path/to/directory", dry_run=True)
renamer.add_prefix("test_")
renamer.execute() # 只显示预览,不实际重命名
from scripts.convert_format import FormatConverter
# 将目录中的所有 JPG 图片转换为 PNG 格式
converter = FormatConverter()
converter.convert_images(
directory="/path/to/images",
target_format="png",
quality=95
)
converter.execute()
# 将 PDF 转换为 PNG 图片
converter = FormatConverter()
converter.convert_pdf_to_images(
pdf_path="/path/to/file.pdf",
output_dir="/path/to/output",
format="png",
dpi=300
)
converter.execute()
# 将目录中的图片合并为一个 PDF
converter = FormatConverter()
converter.convert_images_to_pdf(
directory="/path/to/images",
output_pdf="/path/to/output.pdf",
sort=True # 按名称排序
)
converter.execute()
# 将 Word 文档转换为 PDF
converter = FormatConverter()
converter.convert_docx_to_pdf(
docx_path="/path/to/document.docx",
output_pdf="/path/to/output.pdf"
)
converter.execute()
# 将 Markdown 文档转换为 PDF
converter = FormatConverter()
converter.convert_markdown_to_pdf(
md_path="/path/to/document.md",
output_pdf="/path/to/output.pdf"
)
converter.execute()
文件重命名工具,提供以下命令行功能:
# 添加前缀
python rename_files.py /path/to/directory prefix "new_prefix"
# 添加后缀
python rename_files.py /path/to/directory suffix "_backup"
# 替换文本
python rename_files.py /path/to/directory replace "old" "new"
# 编号重命名
python rename_files.py /path/to/directory numbering "photo_{}.jpg" --start 1 --digits 3 --sort name
# 正则表达式重命名
python rename_files.py /path/to/directory regex "IMG_(\d+)" "image_\1"
# 预览模式(不实际执行)
python rename_files.py /path/to/directory prefix "test_" --dry-run
文件格式转换工具,提供以下命令行功能:
# 图片格式转换
python convert_format.py images /path/to/images png --quality 95
# PDF 转图片
python convert_format.py pdf-to-images /path/to/file.pdf /path/to/output --format png --dpi 300
# 图片转 PDF
python convert_format.py images-to-pdf /path/to/images /path/to/output.pdf
# DOCX 转 PDF
python convert_format.py docx-to-pdf /path/to/document.docx /path/to/output.pdf
# Markdown 转 PDF
python convert_format.py md-to-pdf /path/to/document.md /path/to/output.pdf
# 预览模式
python convert_format.py images /path/to/images png --dry-run
文件重命名:
格式转换:
pip install Pillow)pip install pdf2image)pip install docx2pdf)pip install markdown weasyprint)注意: pdf2image 需要 Poppler 库在 Windows 上。可以从 https://github.com/oschwartz10612/poppler-windows/releases/ 下载并安装。
dry_run=True 预览结果Q: 重命名操作可以撤销吗?
A: 重命名操作是不可逆的。建议先使用 dry_run=True 预览,确认无误后再执行。
Q: 如何处理嵌套目录中的文件? A: 当前脚本仅处理指定目录中的文件,不递归处理子目录。如需处理子目录,需要手动遍历。
Q: 图片转换会保持原质量吗?
A: 可以通过 quality 参数控制图片质量(1-100),默认为 95。
Q: PDF 转图片需要安装什么?
A: 需要安装 pdf2image 库和 Poppler 库。Poppler 在 Windows 上需要单独下载安装。
Q: 支持哪些图片格式? A: 支持 JPG、JPEG、PNG、WebP、BMP、TIFF 等常见格式。
此技能包含以下可执行脚本:
scripts/rename_files.py: 文件重命名工具scripts/convert_format.py: 文件格式转换工具这些脚本可以直接作为 Python 模块导入使用,也可以通过命令行调用。