TTokenySpace
返回 Skills 列表

Csv Toolkit Free

提供符合RFC 4180标准的CSV解析与生成,支持多分隔符检测、编码处理和Excel兼容性,适合开发者跨系统数据交换使用。

#中文
0

安装到 Tokeny(自动)

下载 ZIP
安装"csv-toolkit-free"技能
技能信息:
- 名称: Csv Toolkit Free
- 标识: csv-toolkit-free
- 描述: 提供符合RFC 4180标准的CSV解析与生成,支持多分隔符检测、编码处理和Excel兼容性,适合开发者跨系统数据交换使用。
- 版本: 1.0.0
下载地址:
https://www.tokeny.space/api/skills/csv-toolkit-free/download
继续

复制上方内容到 Tokeny 客户端并在会话中发送即可自动安装;也可直接 下载 ZIP并拖动到技能窗口安装。

SKILL.md

CSV Toolkit(免费版)

面向开发者的 CSV 文件解析与生成参考指南,系统化梳理跨工具交换时的常见问题与对策。

概述

CSV 看似简单,实则是跨工具数据交换中最容易出错的格式之一。不同的解析器对引号、分隔符、编码、空字段的处理各异,Excel 又有自己的怪癖。本 Skill 提供符合 RFC 4180 的处理指南,帮助开发者避开常见陷阱。

免费版覆盖 CSV 处理的核心场景:引号规则、分隔符检测、编码处理、Excel 兼容性、常见解析失败排查。

核心价值

  • RFC 4180 合规:明确引号转义、空字段、换行的标准处理
  • 多分隔符支持:不只是逗号,覆盖分号、制表符、管道符
  • 编码策略:UTF-8 BOM 的添加与去除场景明确
  • Excel 兼容:公式注入、长数字精度、科学计数法防护
  • 陷阱清单:高频解析失败的根因与对策

核心能力

能力域说明免费版覆盖
引号规则字段引号、转义、空字段处理
分隔符检测逗号/分号/制表符/管道符嗅探
编码处理UTF-8 BOM、Latin-1、cp1252
Excel 兼容公式注入、长数字、科学计数法
数字与日期区域格式、ISO 8601、前导零
解析失败排查常见失败原因与修复
流式处理大文件分块解析否(专业版)
自定义方言非标准 CSV 方言配置否(专业版)
Schema 校验列类型与约束校验否(专业版)

核心功能执行

input_params参数进行配置。

输入: 用户提供核心功能执行所需的指令和必要参数。 处理: 解析核心功能执行的输入参数,完成核心逻辑,返回结构化响应。 输出: 返回核心功能执行的响应数据,包含状态码、结果和日志。

  • 执行此能力时使用input_params参数,支持创建/查询/导出操作

参数配置与调用

config_options参数进行配置。

输入: 用户提供参数配置与调用所需的指令和必要参数。 处理: 解析参数配置与调用的输入参数,完成核心逻辑,返回结构化响应。 输出: 返回参数配置与调用的响应数据,包含状态码、结果和日志。

  • 执行此能力时使用config_options参数,支持修改/重置/导入操作

结果处理与输出

output_format参数进行配置。

输入: 用户提供结果处理与输出所需的指令和必要参数。 处理: 解析结果处理与输出的输入参数,完成核心逻辑,返回结构化响应。 输出: 返回结果处理与输出的响应数据,包含状态码、结果和日志。

  • 执行此能力时使用output_format参数,支持导出/保存/转换操作 能力覆盖范围:本skill的核心能力覆盖以下场景关键词:RFC、解析与生成指南、覆盖引号、编码与、Toolkit、是面向开发者的、文件解析与生成参、考指南、帮助处理跨工具交、换时的引号、兼容性问题、核心能力、多分隔符检测、处理策略、公式注入防护、数字与日期格式标、常见解析失败排查等。这些关键词对应description中声明的使用场景,均已在上述能力点中提供对应的操作支持。

使用场景

场景一:跨系统数据交换(后端开发者)

系统 A 导出 CSV 给系统 B 消费。两套系统对引号与编码的处理不同,导致 B 端解析乱码或字段错位。遵循 RFC 4180 引号规则 + UTF-8 with BOM(如目标系统是 Excel)可解决大部分问题。

场景二:Excel 导出的 CSV 在程序中解析失败(数据工程师)

欧洲区域设置的 Excel 导出 CSV 使用分号作为分隔符(非逗号),导致按逗号解析时整行变成一个字段。需要先嗅探分隔符再解析。

场景三:遗留系统的管道符分隔 CSV(运维工程师)

老旧系统导出的 CSV 使用 | 作为分隔符,且字段中可能包含未转义的 |。需要兼容性解析策略与字段重建逻辑。

场景四:多语言数据迁移(全栈开发者)

包含中文、日文、韩文的 CSV 文件在迁移后出现乱码。根源是源系统使用 Latin-1 编码,目标系统按 UTF-8 解析。需要先检测编码再转换。

场景五:Excel 公式注入防护(安全工程师)

用户上传的 CSV 中包含 =CMD() 等公式,在 Excel 中打开会执行命令。生成 CSV 时对以 =+-@ 开头的字段添加前缀 ' 或制表符可防护注入。

不适用场景

以下场景CSV工具箱 免费版不适合处理:

  • 渗透测试未授权目标
  • 物理安全防护
  • 社会工程学攻击

触发条件

需要安全检测、合规审计、漏洞扫描、加密防护时使用。不适用于非本工具能力范围的需求。

快速开始

CSV 处理决策树(约 30 秒)

处理一个 CSV 文件时,按以下顺序决策:

  1. 检测编码:UTF-8(含 BOM)/ Latin-1 / cp1252
  2. 嗅探分隔符:逗号 / 分号 / 制表符 / 管道符
  3. 验证引号规则:是否符合 RFC 4180
  4. 检查列数一致性:每行列数是否与表头一致
  5. 处理边界情况:空字段、换行符、公式注入

引号规则速查(RFC 4180)

情况正确写法错误写法
字段含逗号"a,b"a,b(被解析为两字段)
字段含引号"a""b"(双引号转义)"a"b"(解析中断)
字段含换行"line1\nline2"line1\nline2(被拆为两行)
空字段,"",(空字符串),,(语义可能不同)
前导/尾随空格" value "(保留空格)value(可能被 trim)

响应解析: 完成完成后,查看输出响应确认任务状态。成功时输出包含解析摘要和响应数据;失败时根据错误信息排查问题,查阅错误解析章节获取恢复步骤。

示例

分隔符检测策略

import csv
# ...
# 嗅探分隔符
with open('data.csv', 'r', encoding='utf-8') as f:
    sample = f.read(2048)
    dialect = csv.Sniffer().sniff(sample, delimiters=',;\t|')
    print(f"检测到分隔符: {dialect.delimiter}")
# ...
# 使用检测到的方言解析
with open('data.csv', 'r', encoding='utf-8') as f:
    reader = csv.reader(f, dialect)
    for row in reader:
        print(row)

UTF-8 BOM 处理

# 生成给 Excel 的 CSV(加 BOM)
with open('export.csv', 'w', encoding='utf-8-sig', newline='') as f:
    writer = csv.writer(f)
    writer.writerow(['姓名', '年龄', '城市'])
    writer.writerow(['张三', 25, '北京'])
# ...
# 程序间交换的 CSV(不加 BOM)
with open('exchange.csv', 'w', encoding='utf-8', newline='') as f:
    writer = csv.writer(f)
    writer.writerow(['name', 'age', 'city'])

Excel 公式注入防护

import csv
# ...
def sanitize_for_excel(value):
    """防护 Excel 公式注入"""
    if isinstance(value, str) and value and value[0] in '=+-@':
        return f"'{value}"  # 添加单引号前缀
    return value
# ...
with open('safe.csv', 'w', encoding='utf-8-sig', newline='') as f:
    writer = csv.writer(f)
    writer.writerow(['input'])
    writer.writerow([sanitize_for_excel('=CMD("calc.exe")')])  # 被转义为 '=CMD(...)

长数字与前导零处理

# 长数字(>15位)在 Excel 中会丢失精度,需引号包裹
writer.writerow(['"12345678901234567890"'])  # 作为文本
# ...
# 前导零(如邮编、工号)需引号包裹
writer.writerow(['"007"'])  # 保留前导零

最佳实践

1. 生成 CSV 时明确编码策略

  • 给 Excel 用:UTF-8 with BOM(utf-8-sig
  • 程序间交换:UTF-8 without BOM(utf-8
  • 遗留系统:按目标系统要求(Latin-1 / cp1252)

2. 解析 CSV 时先嗅探分隔符

不要假设分隔符一定是逗号。欧洲 Excel 默认分号,TSV 用制表符,遗留系统可能用管道符。使用 csv.Sniffer 或自行统计分隔符出现频率。

3. 引号包裹含特殊字符的字段

字段中只要包含逗号、引号、换行符之一,就必须用双引号包裹。引号内的引号用两个双引号转义(""),不要用反斜杠。

4. 区分空字段与空字符串

,,,"", 在不同解析器中语义可能不同。建议生成时统一用 "" 表示空字符串,用(无内容)表示 NULL,并在文档中说明。

5. 日期使用 ISO 8601

日期格式 01/02/24 在不同区域设置下含义不同(1月2日 or 2月1日 or 2024年2月1日)。统一使用 ISO 8601(2024-01-02)是唯一无歧义的做法。

6. 数字避免千位分隔符

1,234.561.234,56 在不同区域下含义相反。生成 CSV 时数字不使用千位分隔符(1234.56),由消费端按需格式化。

7. 防护 Excel 公式注入

生成给 Excel 的 CSV 时,对以 =+-@ 开头的字段添加前缀 ' 或制表符,防止公式执行。

8. 验证列数一致性

解析后验证每行的字段数是否与表头一致。不一致通常是引号未正确转义导致,应尽早发现并报错。

常见问题

Q1:CSV 在 Excel 中打开是乱码?

文件是 UTF-8 without BOM 编码,Excel 无法识别。重新用 utf-8-sig 编码生成即可。

Q2:分号分隔的 CSV 解析成了一列?

欧洲区域设置的 Excel 默认用分号分隔。解析时使用 csv.Sniffer 检测分隔符,或显式指定 delimiter=';'

Q3:字段中的换行符导致行数错乱?

字段内的换行符必须用双引号包裹整个字段。不要在解析前按 \n 拆行——RFC 4180 允许字段内含换行符。

Q4:长身份证号在 Excel 中变成科学计数法?

超过 15 位的数字在 Excel 中会丢失精度并可能显示为科学计数法。生成时将长数字字段用双引号包裹并设置为文本格式。

Q5:前导零丢失(如邮编 007 变成 7)?

数字字段的前导零会被 Excel 自动去除。生成时用双引号包裹该字段,或在值前加制表符 \t 强制为文本。

Q6:解析时报"未转义引号"错误?

字段中包含未转义的双引号。RFC 4180 要求引号内的引号用两个双引号转义("")。检查源数据并修复转义。

依赖说明

运行环境

  • Agent 平台:支持 SKILL.md 的任意 AI Agent(Claude Code / Cursor / Codex / Gemini CLI 等)
  • 操作系统:Windows / macOS / Linux
  • Python:3.8+(示例代码使用 Python 标准库)

依赖详情

依赖项类型是否必需获取方式
LLM APIAPI必需由 Agent 内置 LLM 提供
Python运行时可选官网下载(示例代码需要)
csv 模块Python 标准库可选Python 自带

API Key 配置

  • 本 Skill 基于 Markdown 指令,无需额外 API Key
  • 示例代码使用 Python 标准库,无需安装第三方包

可用性分类

  • 分类:MD(纯 Markdown 指令,示例代码可选执行)
  • 说明:基于 Markdown 的 AI Skill,通过自然语言指令驱动 Agent 提供参考与建议

已知限制

本免费体验版限制以下高级功能:

  • 流式处理大文件(超过 100MB 的 CSV 分块解析)
  • 自定义 CSV 方言配置(非标准转义与引用规则)
  • Schema 校验与列类型推断
  • 多文件合并与拆分
  • CSV 与 JSON / Parquet / Arrow 格式互转
  • 性能基准测试与优化建议

解锁全部功能请使用专业版:csv-toolkit-pro

  • 当前为免费版本,如需完整功能请升级到付费版获取全部能力

License 与版权声明

本 skill 基于原始作品改进,保留原始版权声明:

  • 原始作品:CSV Toolkit
  • 原始 license:MIT
  • 改进作品:CSV Toolkit(免费版)
  • 改进 license:MIT

本改进作品在原始作品基础上进行了深度差异化改造,包括但不限于:

  • 完全重写中文化文档与场景指南
  • 新增决策树、引号速查表、公式注入防护等实用内容
  • 完善常见问题与最佳实践
  • 增加免费版/专业版分层策略

错误处理

错误场景原因处理方式
配置错误参数缺失或格式错误检查依赖说明中的配置要求
运行时错误运行环境不满足确认运行环境符合依赖说明
网络错误连接超时或不可达执行ping命令测试网络连通性,检查防火墙和代理设置连接后执行ping命令测试网络连通性,检查防火墙和代理设置连接后重新执行命令,参考国内替代方案

输出格式

{
  "success": true,
  "data": {
    "result": "CSV工具箱 免费版处理结果",
    "execution_time": "0.5s",
    "metadata": {
      "version": "1.0",
      "processor": "csvkit"
    }
  },
  "execution_log": ["解析输入参数", "执行核心处理", "格式化输出结果"],
  "error": null
}

评论

加载中…