Skip to content

[csv/zh-cn] Add translation for csv tutorials (Fixes #5291) #5292

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 5 commits into from
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
90 changes: 90 additions & 0 deletions zh-cn/csv.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
---
language: CSV
contributors:
- [Timon Erhart, 'https://github.com/turbotimon/']
translators:
- [Luca Yu, 'https://github.com/AlightSoulmate/']
---

CSV(逗号分隔值)是一种轻量级纯文本表格数据格式,十分适合表格与数据库传输,常用于程序间数据交换。

它具有以下特点:

- 结构简单
- 直观易读
- 跨系统兼容性强

在实际应用中,"CSV" 这一术语可以指代任何符合以下条件的文本文件:

- 可被解析为表格数据
- 使用分隔符分隔字段(列)
- 使用换行符分隔记录(行)
- 可选地在第一行包含表头

```csv
Name, Age, DateOfBirth
Alice, 30, 1993-05-14
Bob, 25, 1998-11-02
Charlie, 35, 1988-03-21
```

## 行与列的分隔符

行:每行数据用换行符(`\n`或`\r\n`)分隔。

列:各字段常用逗号隔开,只在某些地区(如德国用逗号表示小数)改用分号(`;`)。用制表符(`\t`)分隔的称为 TSV(制表符分隔值)。

示例:使用分号作为分隔符,并使用逗号表示小数点:

```csv
Name; Age; Grade
Alice; 30; 50,50
Bob; 25; 45,75
Charlie; 35; 60,00
```

## 数据类型

CSV 文件本身不定义数据类型,数字和日期均以纯文本存储,具体的解析方式取决于导入该文件的软件。

通常,数据的解析方式如下:

```csv
数据, 解析方式
1.100, 解析为整数 (integer)
2.100.00, 解析为浮点数 (floating-point)
3.2024-12-03, 解析为日期或字符串(取决于解析器)
4.Hello World, 解析为文本字符串 (string)
5."1234", 解析为文本(string),而非数字
```

## 字符串引用与特殊字符

只有当字符串包含分隔符、特殊字符,或可能被误认为数字时,才必须用引号进行引用。

不过建议始终给字符串加上引号,以提高可读性和健壮性。

```csv
示例:
1.未加引号的字符串,
2."建议加引号的字符串(良好实践)",
3."如果包含分隔符,则必须加引号",
4."如果包含特殊字符(如换行符 \n 或制表符 \t),也必须加引号",
5."引号字符本身通常通过双写引号("")来转义",
6."某些系统则使用反斜杠来转义引号(例如:\")",
```

注意同一份文档内的引用方式保持一致,例如示例 5、6 分别用 `""` 和 `\"` 转义引号,混用将导致解析错误。

## 编码格式

现代大多使用 UTF-8 编码格式,但旧系统可能仍然采用 ASCII 或 ISO-8859 等。

在不同系统之间传输或共享 CSV 文件时,建议明确指定编码格式,以避免解析错误。

最后,如果你接触过爬虫或数据库,一定熟悉 CSV 文件,我建议你通过学习 python 等语言的 csv 文件操作来熟悉 csv 格式特性!

## 更多资源

- [维基百科](https://en.wikipedia.org/wiki/Comma-separated_values)
- [RFC 4180](https://datatracker.ietf.org/doc/html/rfc4180)