`
zhang_xzhi_xjtu
  • 浏览: 538360 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

CSV文件的一些注意点

 
阅读更多
狭义的csv是comma separated values.
wiki的定义
CSV is a delimited data format that has fields/columns separated by the comma character and records/rows terminated by newlines.

广义的csv是以任意一个字符分隔的平面文件。

没有严格的标准,RFC 4180试图规范化CSV。

每条记录结束于行终止符。
每个字段用分隔符分隔(一般是逗号)。

常见的一些约束:

DOS-style lines that end with (CRLF) characters
每一个记录包含相同数目的字段,并且字段顺序相同。
任何字段可以用双引号引住。
字段中如果包含(行结束符)\r\n,双引号,逗号,该字段必须用双引号包住。
字段中的双引号用连续2个双引号表示。同时,该字段必须用双引号包住。
CSV文件不需要特定的字符集,编码,byte order,行结束符。
字段中的数据按照字符解释,不按字节解释。
同一记录相邻字段必须用分隔符隔开。

看例子:





说明:
第1行
左边:比较简单,不解释。
右边:字段可以用双引号包住。

第2行
左边:b","b被解释为2个字段,前一个字段为b",后一个字段以双引号开始,所以会跨行寻找该字段的值,直到配对的双引号或文件结束。
右边:"b","b"被解释为2个被双引号包住的字段。

第3行
左边:"b"",""b"被解释为一个字段被双引号包住,中间的连续双引号被转义为双引号。
右边:"b,b"被解释为一个字段被双引号包住,中间的分隔符,原样输出。

第4行
左边:b","b被解释为2个字段,前一个字段为b",后一个字段以双引号开始,所以会跨行寻找该字段的值,直到配对的双引号或文件结束。
右边:b"","b被解释为2个字段,前一个字段为b"",因为该字段没有以双引号开始,因此,连续的双引号没有转义。

第5行
左边:b""b被解释为一个字段。
右边:验证双引号开始的字段的跨行查找。

第6行
左边:"""的情况,字段以双引号开始,接下来的2个双引号转义,接下来查找该字段的其他值。
右边:单引号没有特殊功能,空和""含义相同。

第7行
左边:验证单引号没有特殊功能。

再补充一个
"aaaa"aa"aa被解释为6个a+"+aa,字段以"开头会寻找第一个匹配的",但是不代表字段结束。

更复杂的例子。
a,"aa"a
b,bb

这个问题,动手设计用例比较重要。
  • 大小: 87.2 KB
分享到:
评论

相关推荐

    CSV文件数据抽取

    在CSV文件数据抽取的过程中,主要涉及以下几个步骤和相关的知识点: 1. **读取CSV文件**:首先需要使用编程语言(如Python、Java、R等)中的库函数读取CSV文件。例如,Python中可以使用pandas库的`read_csv()`函数...

    C语言读取CSV文件

    本篇文章将深入讲解如何使用C语言编写一个读取CSV文件的接口,并探讨相关知识点。 首先,我们需要理解CSV文件的基本结构。CSV文件由一行行的数据组成,每行数据以逗号分隔,每个字段代表一个数据项。例如: ``` ...

    csv文件批量合并工具

    CSV文件批量合并工具是一种实用程序,专为处理大量CSV(逗号分隔值)文件而设计。CSV格式广泛用于数据交换,因为它的简单性和通用性,可以被多种应用程序和数据库系统读取。以下是对该工具及其功能的详细解释: 1. ...

    csv文件读写操作

    在MFC(Microsoft Foundation Classes)环境下,利用Visual Studio 2015进行CSV文件的读写操作,可以方便地处理这类数据。本文将详细介绍如何在VS2015的MFC项目中实现CSV文件的读写功能。 1. **CSV文件结构** CSV...

    csv大文件打开器

    在处理大型CSV文件时,还需要注意以下几点: - **数据压缩**:在传输或存储大型CSV文件时,可以考虑先进行压缩,如使用gzip或zip,以减少磁盘空间占用和传输时间。 - **数据库管理**:对于经常需要查询和分析的数据...

    读取创建CSV文件并自动解析文件编码方式

    本文将深入探讨如何读取和创建CSV文件,并特别关注自动解析文件编码方式这一关键环节。我们将使用Java语言进行示例,同时引入第三方库来辅助处理编码问题。 首先,创建CSV文件的基本过程涉及将数据写入具有特定分隔...

    C++对文件排序并输出CSV文件

    以下是一些处理CSV文件的C++基本步骤: 1. **打开文件**:使用`std::ifstream`打开待排序的CSV文件,`std::ofstream`打开用于输出排序结果的新CSV文件。 2. **读取和解析数据**:逐行读取CSV文件,将每一行的数据...

    CSV大文件分割工具.rar

    然而,当CSV文件的大小达到一定规模时,可能会遇到一些问题,比如打开速度慢、处理困难,尤其是当文件大小超出Excel的处理能力时。在这种情况下,CSV大文件分割工具就显得非常有用了。 该"CSV大文件分割工具.rar"是...

    CSV文件导入MDB

    请注意,这个例子假设CSV文件的第一行是列名,实际数据从第二行开始。如果CSV文件没有列名,你需要手动创建列名或者修改代码以适应实际情况。 在实际操作中,确保CSV文件编码与VB程序一致,避免出现乱码问题。此外...

    CH376S读CSV文件_ch376s_c_读写csv文件_

    总的来说,通过理解CSV文件格式和CH376S的文件操作API,开发者可以在STM32F103RCT6上实现高效且可靠的CSV文件读写,满足各种数据处理需求。在开发过程中,不断调试和测试,确保程序的稳定性和兼容性,是成功的关键。

    js读取csv文件并使用json显示出来

    注意,上述代码中所展示的是一个简化的示例,它假设CSV文件的格式是已知的,并且每一行数据的字段数量和顺序是固定不变的。在实际应用中,可能需要对不同的CSV格式进行适配,以及对数据进行错误处理和验证。 最后,...

    java操作CSV文件

    ### Java操作CSV文件知识点 #### 一、简介与背景 在日常的数据处理工作中,CSV(Comma-Separated Values)文件是一种常见的数据交换格式。它简单易用且跨平台兼容性好,常被用于导入导出数据、数据分析等场景。在...

    python 利用pandas将arff文件转csv文件的方法

    ### Python 利用 Pandas 将 ARFF 文件转换为 CSV 文件的方法 在数据科学与机器学习领域中,数据预处理是十分重要的一步。ARFF(Attribute-Relation File Format)是一种常用的数据格式,常用于存储表格型数据。但在...

    java读写csv文件,中文乱码问题

    在Java编程中,CSV(Comma Separated Values)...通过以上步骤和知识点,你应该能够有效地解决Java读写CSV文件时遇到的中文乱码问题。在实际项目中,结合具体的错误现象,灵活应用这些知识就能顺利处理各种编码问题。

    linux c++csv文件读写

    CSV文件是一种常见的数据存储格式,通常用于数据交换,因为它的结构简单且易于解析。以下将详细介绍如何在C++中进行Linux平台上的CSV文件读写。 一、CSV文件读取 1. **标准库iostream** 使用`ifstream`类可以...

    c++读取csv文件

    CSV文件以其简洁、通用的格式被广泛用于存储表格数据,例如数据库导出、电子表格或者统计报告。本文档将详细讲解如何在Visual Studio 2013环境下使用C++语言读取CSV文件,并通过动态分配数组来存储读取到的数据。 ...

    java读写csv文件

    Java 读写 CSV 文件 Java 读写 CSV 文件是指使用 Java 语言来读取和写入 CSV 文件,CSV 文件是一种常用的...使用 javacsv 库读写 CSV 文件可以正确地处理特殊字符,获取原始的数据内容,并且可以避免一些常见的错误。

    Csv文件快速转Excel文件 C#

    这个过程中,需要注意的是,CSV文件可能包含逗号、引号等特殊字符,OpenCSV会正确处理这些情况。而在Excel中,我们可能需要考虑单元格的格式、样式以及合并等问题,EPPlus提供了丰富的API来处理这些问题。 总结,C#...

    UE4C++写入CSV文件.docx

    在 UE4 项目中,需要将一些数据保存到 CSV 文件中,以便于后续的数据分析和处理。 在 UE4 中,使用 C++ 语言可以实现 CSV 文件的写入操作。下面是一个简单的示例代码,演示如何使用 C++ 语言在 UE4 中写入 CSV 文件...

    Qt qtablewidget与CSV文件的关系

    当需要将CSV文件的内容显示在QTableWidget时,首先需要读取CSV文件。Qt提供了QTextStream和QFile类来处理文件操作。通过打开CSV文件,逐行读取并解析数据,然后将这些数据插入到QTableWidget的对应单元格中。解析CSV...

Global site tag (gtag.js) - Google Analytics