文件格式转换器Skill file-converter

文件格式转换器是一个自动化工具技能,用于处理文档(PDF、DOCX、Markdown、HTML、TXT)、数据文件(JSON、CSV、YAML、XML、TOML)和图像(PNG、JPG、WebP、SVG、GIF)之间的格式转换。该技能根据用户的具体请求动态生成Python转换代码,自动选择合适的库(如Pillow、pandas、markdown等),并处理编码、透明度、嵌套结构等边缘情况。适用于文档处理、数据交换、图像优化、格式标准化等场景,提升文件处理效率和自动化水平。

后端开发 0 次安装 14 次浏览 更新于 2/28/2026

name: file-converter description: 该技能处理文档(PDF、DOCX、Markdown、HTML、TXT)、数据文件(JSON、CSV、YAML、XML、TOML)和图像(PNG、JPG、WebP、SVG、GIF)之间的格式转换。当用户请求在不同格式之间转换、转换或导出文件时使用。根据具体请求动态生成转换代码。 author: Joseph OBrien status: unpublished updated: ‘2025-12-23’ version: 1.0.1 tag: skill type: skill

文件格式转换器

概述

在三大类别之间转换文件格式:文档、数据文件和图像。为每个转换请求动态生成Python代码,选择合适的库并处理边缘情况。

转换类别

文档

源格式 目标格式 推荐库
Markdown HTML markdownmistune
HTML Markdown markdownifyhtml2text
HTML PDF weasyprintpdfkit(需要wkhtmltopdf)
PDF 文本 pypdfpdfplumber
DOCX Markdown mammoth
DOCX PDF docx2pdf(Windows/macOS)或LibreOffice CLI
Markdown PDF 先转换为HTML,再转换为PDF

数据文件

源格式 目标格式 推荐库
JSON YAML pyyaml
YAML JSON pyyaml
JSON CSV pandas 或标准库 csv + json
CSV JSON pandas 或标准库 csv + json
JSON TOML tomli/tomllib(读取)+ tomli-w(写入)
XML JSON xmltodict
JSON XML dicttoxmlxmltodict.unparse

图像

源格式 目标格式 推荐库
PNG/JPG/WebP/GIF 任何栅格格式 Pillow (PIL)
SVG PNG/JPG cairosvgsvglib + reportlab
PNG SVG potrace(CLI)用于描摹,保真度有限

工作流程

  1. 识别源格式(通过文件扩展名或用户说明)
  2. 识别目标格式
  3. 检查 references/ 获取特定格式的指导
  4. 使用推荐库生成转换代码
  5. 处理边缘情况(编码、透明度、嵌套结构)
  6. 执行转换并报告结果

快速模式

数据:JSON 转 YAML

import json
import yaml

with open("input.json") as f:
    data = json.load(f)

with open("output.yaml", "w") as f:
    yaml.dump(data, f, default_flow_style=False, allow_unicode=True)

数据:CSV 转 JSON

import csv
import json

with open("input.csv") as f:
    reader = csv.DictReader(f)
    data = list(reader)

with open("output.json", "w") as f:
    json.dump(data, f, indent=2)

文档:Markdown 转 HTML

import markdown

with open("input.md") as f:
    md_content = f.read()

html = markdown.markdown(md_content, extensions=["tables", "fenced_code"])

with open("output.html", "w") as f:
    f.write(html)

图像:PNG 转 WebP

from PIL import Image

img = Image.open("input.png")
img.save("output.webp", "WEBP", quality=85)

图像:SVG 转 PNG

import cairosvg

cairosvg.svg2png(url="input.svg", write_to="output.png", scale=2)

资源

复杂转换的详细指南位于 references/ 目录中:

  • references/document-conversions.md - PDF处理、编码问题、样式保留
  • references/data-conversions.md - 模式处理、类型强制、嵌套结构
  • references/image-conversions.md - 质量设置、透明度、色彩配置文件

处理边缘情况或用户有特定质量/保真度要求时,请查阅这些参考资料。