File Converter 是一个处理多类别文件格式转换的技能,覆盖文档、数据文件和图像三大类。其核心做法是针对每一次转换请求动态生成 Python 代码,选择合适的库并处理边界情况。
用途 该技能用于在以下三类格式之间完成转换:
- 文档:PDF、DOCX、Markdown、HTML、TXT
- 数据文件:JSON、CSV、YAML、XML、TOML
- 图像:PNG、JPG、WebP、GIF、SVG
主要能力与推荐库 文档转换方面:Markdown 转 HTML 推荐使用 markdown 或 mistune;HTML 转 Markdown 推荐 markdownify 或 html2text;HTML 转 PDF 推荐 weasyprint 或 pdfkit(需要 wkhtmltopdf);PDF 转文本推荐 pypdf 或 pdfplumber;DOCX 转 Markdown 推荐 mammoth;DOCX 转 PDF 推荐 docx2pdf(Windows/macOS)或 LibreOffice CLI;Markdown 转 PDF 则先转为 HTML 再转为 PDF。
数据文件转换方面:JSON 与 YAML 之间转换使用 pyyaml;JSON 与 CSV 之间转换使用 pandas 或标准库 csv 加 json;JSON 转 TOML 使用 tomli/tomllib(读取)加 tomli-w(写入);XML 转 JSON 使用 xmltodict;JSON 转 XML 使用 dicttoxml 或 xmltodict.unparse。
图像转换方面:PNG/JPG/WebP/GIF 之间的任意栅格格式转换使用 Pillow(PIL);SVG 转 PNG/JPG 使用 cairosvg 或 svglib 加 reportlab;PNG 转 SVG 使用 potrace(命令行工具)进行描摹,保真度有限。
使用方式 工作流程为:1. 识别源格式(根据文件扩展名或用户说明);2. 识别目标格式;3. 在 references/ 中查阅格式相关的具体指引;4. 使用推荐库生成转换代码;5. 处理边界情况(编码、透明度、嵌套结构);6. 执行转换并报告结果。
资料还提供了若干可直接参考的代码模式,例如:
- 数据:JSON 转 YAML,使用 json 与 yaml,通过 yaml.dump 并设置 default_flow_style=False、allow_unicode=True;
- 数据:CSV 转 JSON,使用 csv.DictReader 读取并 json.dump 写入,缩进为 2;
- 文档:Markdown 转 HTML,使用 markdown.markdown 并启用 tables、fenced_code 扩展;
- 图像:PNG 转 WebP,使用 Pillow 的 Image.open 与 save,quality 为 85;
- 图像:SVG 转 PNG,使用 cairosvg.svg2png,scale 为 2。
适用场景与限制 该技能适用于需要在上述三类格式之间进行转换的任务。对于复杂转换,参考资料位于 references/ 目录下,包括 references/document-conversions.md(PDF 处理、编码问题、样式保留)、references/data-conversions.md(模式处理、类型强制、嵌套结构)和 references/image-conversions.md(质量设置、透明度、颜色配置文件)。当处理边界情况或用户有特定质量/保真度要求时,可查阅这些参考文档。部分转换存在限制,例如 PNG 转 SVGP 使用 potrace 进行描摹时保真度有限。关于收费、价格、平台等具体信息暂未提供。