跳到正文
cccskills
免费在 GitHub 公开

csv-pro

CSV processing done right — parsing edge cases, dialects, and large files — use when ingesting or exporting CSV data.

中文简介正在准备中。当前显示原文说明。

集成工具Excel
查看安装方法

包含的文件(1)

  • SKILL.md3.7 KB

SKILL.md(原文)

安装前可以查看交给 AI 代理的指令内容。

Overview

CSV looks trivial until it isn't: embedded newlines, quoted commas, BOMs, inconsistent dialects, and million-row files. This skill covers robust CSV parsing and generation — the unglamorous work that keeps data pipelines from silently corrupting data.

When to use

  • Parsing user-uploaded or third-party CSVs with unknown dialects
  • Generating CSV exports that open correctly in Excel and other tools
  • Streaming multi-gigabyte CSV files without loading them into memory
  • Validating CSV schemas (headers, types, required columns)
  • Handling encoding issues (BOM, Latin-1 vs UTF-8)

Core concepts

Never split on commas. Real CSV has quoted fields containing commas, newlines, and escaped quotes (""). Always use a proper CSV parser from your language's standard library or a battle-tested package — hand-rolled splitting is a bug factory.

Dialects vary. Delimiter (comma, semicolon, tab, pipe), quote character, escape style, and line endings differ by producer and locale (much of Europe uses ; because , is the decimal separator). Sniff the dialect from a sample when it's unknown, but let users override — sniffing is heuristic.

Encoding: expect UTF-8 with BOM. Excel writes UTF-8 CSVs with a BOM; strip it or your first header becomes \ufeffid. For unknown encodings, try UTF-8, then fall back to likely candidates (Windows-1252 for Western data) — and log when you guess.

Headers are data, not gospel. Normalize them (trim, lowercase, deduplicate) and validate against an expected schema. Map by name, not position — column order changes. Report unknown/missing columns explicitly rather than silently ignoring them.

Stream large files. Process row-by-row with iterators/generators; never load a 2GB CSV into a list of dicts. Validate and transform in the streaming pass, collecting only error summaries and aggregates in memory.

Practical workflow

  1. Detect: read a sample — sniff delimiter, check for BOM, detect encoding, locate the header row (not always row 1).
  2. Define the schema: expected columns, types, required fields, value constraints; normalize header names.
  3. Parse streaming: iterate rows, coerce types per column with clear error messages including the row number and raw value.
  4. Validate: collect all errors (don't fail on the first); distinguish fatal (wrong columns) from row-level (bad value in row 4521).
  5. Generate: write with the standard library writer, QUOTE_MINIMAL, \r\n line endings for Excel compatibility, UTF-8 with BOM if the audience is Excel users, and a header row always.
  6. Test with adversarial fixtures: quoted commas, embedded newlines, empty fields, trailing delimiters, mixed line endings, and a 1M-row file for the streaming path.

Common pitfalls

  • Hand-rolled line.split(',') — breaks on the first quoted comma; use a real parser, always.
  • Ignoring the BOM — invisible character corrupts the first column name and breaks header mapping.
  • Loading everything into memory — fine for 10k rows, fatal for 10M; stream by default.
  • Silent type coercion — "0123" becoming 123 loses leading zeros (zip codes, SKUs); coerce deliberately per column, not globally.
  • Excel mangling your output — long digit strings become scientific notation, dates get reinterpreted; for Excel audiences consider prefixing with = or quoting, and document the behavior.
  • No row numbers in error messages — "invalid value" without a row number is unactionable; always report where the problem is.

评价

还没有评价。欢迎分享你的使用感受。

评论

无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。

还没有评论。来写第一条吧。

提交后会立即公开。请勿填写邮箱、电话等个人信息。URL 最多 2 个。

0 / 1000 字

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

同一仓库的技能

Master 1Password: vaults, Watchtower, passkeys, SSH agent, CLI, and family/team administration. Use when getting full value from 1Password personally or administering it for others.

中文简介正在准备中。当前显示原文说明。

aicodedecode/awesome-muse-skills252026年10月10日 更新

Create 3D visuals with modeling, texturing, lighting, rendering, and optimization for web and product.

中文简介正在准备中。当前显示原文说明。

aicodedecode/awesome-muse-skills252026年10月10日 更新

Create 3D web experiences: scene setup, models, materials, lighting, animation, scroll-driven scenes, and performance budgets. Use when adding 3D to websites beyond basic demos.

中文简介正在准备中。当前显示原文说明。

aicodedecode/awesome-muse-skills252026年10月10日 更新

Writing abstracts that get papers read — structured content, the 5-sentence core, and journal-specific constraints.

中文简介正在准备中。当前显示原文说明。

aicodedecode/awesome-muse-skills252026年10月10日 更新

Learn effectively from courses and academies: choosing programs, studying actively, and converting courses into skills. Use when investing time/money in structured learning.

中文简介正在准备中。当前显示原文说明。

aicodedecode/awesome-muse-skills252026年10月10日 更新

Audit designs for accessibility with WCAG checklists covering color, type, focus, motion, and content.

中文简介正在准备中。当前显示原文说明。

aicodedecode/awesome-muse-skills252026年10月10日 更新

查看 aicodedecode 的全部技能

报告此技能的问题