关于 file-converter
用于转换文档、数据和图像格式的技能,会针对每项请求生成 Python 代码。它依据格式选择相应库,并参考专门指南处理转换边界情况。
主要功能
- 01转换文档格式
- 02转换 JSON、CSV 等数据格式
- 03转换栅格与矢量图像
- 04为转换选择 Python 库
- 05查阅资料处理边界情况
适用场景
- 01将 Markdown 文档转换为 HTML 或 PDF
- 02转换 JSON、CSV、YAML 或 XML 文件
- 03更改图像格式或将 SVG 栅格化
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ 89jobrien/ steve --skill file-converter安装后在 Claude Code 中输入/file-converter确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/data-conversions.mddocument-conversions.mdimage-conversions.md详细介绍
文件转换器
概述
在三类格式之间转换文件:文档、数据文件和图像。针对每个转换请求动态生成 Python 代码,选择合适的库并处理边缘情况。
转换类别
文档
| From | To | 推荐库 |
|---|---|---|
| Markdown | HTML | markdown 或 mistune |
| HTML | Markdown | markdownify 或 html2text |
| HTML | weasyprint 或 pdfkit(需要 wkhtmltopdf) | |
| 文本 | pypdf 或 pdfplumber | |
| DOCX | Markdown | mammoth |
| DOCX | docx2pdf(Windows/macOS)或 LibreOffice CLI | |
| Markdown | 先转换为 HTML,再转换为 PDF |
数据文件
| From | To | 推荐库 |
|---|---|---|
| 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 | dicttoxml 或 xmltodict.unparse |
图像
| From | To | 推荐库 |
|---|---|---|
| PNG/JPG/WebP/GIF | 任意栅格格式 | Pillow (PIL) |
| SVG | PNG/JPG | cairosvg 或 svglib + reportlab |
| PNG | SVG | 使用 potrace(CLI)进行描摹,保真度有限 |
工作流
- 确定源格式(根据文件扩展名或用户说明)
- 确定目标格式
- 查看
references/中针对格式的指南 - 使用推荐的库生成转换代码
- 处理边缘情况(编码、透明度、嵌套结构)
- 执行转换并报告结果
快速示例
数据: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- 质量设置、透明度、色彩配置文件
处理边缘情况,或用户对质量/保真度有特定要求时,请参阅这些参考资料。
评论
支持 Markdown