`
djsl6071
  • 浏览: 592177 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

CSV文件及其使用(zz)

阅读更多
CSV文件及其使用
    在集图的过程中,你肯定会常常听到CSV文件这个词。那么所谓CSV文件到底是个什么东西呢? 它有什么用处呢?又要如何使用呢?认真读完下面的文字,相信你对CSV会有一个初步的了解。
    所谓“CSV”,是Comma Separated Value(逗号分隔值)的英文缩写,通常都是纯文本文件。 下面是一个实际CSV文件中的部分内容,让大家对他有一个感性的认识。我们选的是Sjojo_Rescan 的CSV文件(Sjojo是ASW-亚洲扫图风的成员之一)。
sj_mino1001.jpg,715282,4FB55FE8,
sj_mino1002.jpg,471289,93203C5C,
sj_mino1003.jpg,451929,C4E80467,   
通常CSV文件开头是不留空的,以行为单位,每行中记录一张图片的了多项数据,每项数据用逗号 来分隔(标准英文逗号)。一般说来集图用的.CSV文件的格式是这样的:
文件名,文件大小(以字节为单位),CRC校验值,注释(可省略)
sj_mino1001.jpg,715282,4FB55FE8,
     |             |       |        |
   文件名      文件大小  CRC值   注释(已省略)     
如果你的机器上装了Microsoft Excel的话,.csv文件默认是被Excel打开的。需要注意的是,当你 双击一个.CSV文件,Excel打开它以后即使不做任何的修改,在关闭的时候Excel往往会提示是否要 改成正确的文件格式,这个时候千万记得要选择“否”。因为Excel认为.CSV 文件中的数字是要用 科学记数法来表示的,而我们要的.CSV文件中的数字是普通的。如果你选择了“是”的话,Excel
会把CSV文件中所有的数字用科学计数来表示(2.54932E+5这种形式),这个文件就没法用了。 所 以如果你的CSV文件绝大部分都是用在集图上的话,建议把.CSV的默认打开方式改成任意一个文本 编辑器,系统自带的记事本就是个不错的选择。
    好,让我们回到CSV文件的格式中来。见上面,从左到右 sj_mino1001.jpg是文件名,715282 是以字节表示的文件大小。当文件名中包含逗号的时候,由于逗号在CSV文件中特殊的作用,为了 不至于产生歧义,需要用引号把文件名括起来。比如 "The Art, Fantasy.jpg",384211,...,.... 接着是一个8位的16进制数字 4FB55FE8,这是文件的CRC32校验值。整个CSV文件的精髓都在这里。
让我们举个小例子来说明它的意义:Sjojo发布了一张图sj_mino1001.jpg,假设你是从朋友手中拿 到这张图的,那么你肯定常常会有这样的疑问,这张图在传播的过程中是否被改动过呢?是否无意 中遭到了损坏呢?CRC就是为解决这个问题而存在的。一般情况下,扫图家每发布了一套图,就同 时放出一个CSV文件(这种CSV通常叫做Official CSV,也就是官方发布的CSV的意思),这个CSV中 的CRC值是用专门的软件通过CRC32算法(常用的CRC算法还有CRC16)对文件运算后生成的一个值, 这个值可用作文件真身的标志。在绝大多数情况下,如果这个文件在传播过程中无论是大小还是内 容被改动过。那么,用同样的CRC32算法再对文件进行运算后产生的CRC校验值就完全不一样了。如 果得出的CRC值是一样的,则完全有理由认为这个文件是真身,没有被改动过。还有些时候,收来 的图片文件名被改动过了,那么你怎么知道谁是谁呢?这个时候CRC值又起作用了:用专用的软件对图片处理后,可以得到文件的大小和CRC值,然后根据大小和CRC值在CSV中寻找是否有适合的图片。如果有,就会把图片的名字改成CSV里的。举个例子,你收到了一张图片,名字是pic0001.jpg,同时你知道这张图片是Sjojo_Rescan这个集子里面的,但是不知道具体是哪一张。用软件得到它的大小和CRC分别是715282和4FB55FE8,那么软件在CSV文件里找到一行sj_mino1001.jpg,715282,4FB55FE8,大小和CRC都符合,软件就认为这张图片的原名是sj_mino1001.jpg,接着自动把文件的名字改成sj_mino1001.jpg。改动的不是CSV文件而是图片的文件名。接下来的是注释和说明,可以省略掉。需要注意的是注释的后面是没有逗号的,如果要省略注释的话,一定要在CRC值的后面保留一个逗号,否则软件会把CRC值认为是注释的。
    相信看完上面的一大堆东西后,你不但对CSV文件有了个大概地了解,对它的用途应该也有些模糊的概念了吧。我们收集图片往往是通过各种各样不同的渠道,比如从网站上,IRC上,抑或干脆是朋友送的光盘。在整个的传播过程中,图片有可能遭受到各种各样的非人待遇。尤其是从网站上收来的图片。有些时候仅仅是简单的改了一下名字,更多的时候由于很多PLMM站空间有限,常把图片的尺寸缩小,或者把图片文件缩小。一张1356x588的图被改成了678x294,或者一个四五百K的文件被缩成了几十K都是常有的事。比较可恶的是,许多网站把原来扫图家的Logo去掉,打上自己网站的Logo。还有些许搞笑派的玩家,把各种各样的图片移花接木,改头换面。这些对于一般的看
图娱乐无伤大雅,但是对于集图来说,收到这样的图片是无法容忍的。如何验明图片的正身,这是扫图家和集图者共同面对的问题。CSV文件就是为了解决这样的问题而出现的。CSV文件最早用在简单的数据库里,由于其格式简单,并具备很强的开放性,所以起初被扫图家用作自己图集的标记。 如上面所说的,CSV文件是个纯文本文件,每一行表示一张图片的许多属性。你在收一套图集时,只要能找到它的CSV文件,用专用的软件校验后,你对该图集的状况就可以了如指掌。比如这套图一共有多少张,你收到了多少张,哪些是原图,那些是可能被改动过或者损坏了的图片......我们可以把.CSV文件看作一份索引,你不但可以“按图索骥”,还可以检查自己收来的“马子”血统是 否纯正。
    CSV文件的来源通常有两种:一种是扫图家自己发布的CSV,一般称作Official CSV。也就是官方发布的CSV,通常说来是有相当的权威性的。比较特殊的是亚洲的许多扫图家,除了公开发布的图以外,还有一些私下发布的Special图,或者一些专门送给朋友的图。加上扫图家不愿意或者不会做CSV,所以他们图集的CSV往往由集图界中一些资深前辈出头来做。在这种情况下,往往会出现一个图集有好几个版本的CSV文件,并且每个版本之间都有不小的差别。此时的CSV不仅是验明真身的依据,同时也给了集图者一个希望:即使缺的再多,即使用这个版本csv收全的人再少,一定会有一个人是全的,就是此CSV的作者!集图界前辈LiQing有一句名言:“有CSV就表示一定有图!” 自然而然的,民间现了一些权威的做CSV的玩家。比如早期的EDZONE,现在依然活跃的OSun,shum,vsam,TE,Paul... 还有偶们COC图盟的WQC  
    好了,说了那么多,大家可能会问,CSV文件那么好用,到底要怎么用呢?不会要自己手工来检测吧?呵呵,还记得上文中一再出现的“软件”这个字眼吗?有专用的软件可以帮助我们完成这项工作。常用的软件有The!Checker和The Hunter。目前这两个软件都有汉化的简体中文版,汉化人是来自北方的snowtank(感谢snowtank  ) 
 
分享到:
评论

相关推荐

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

    在介绍如何使用JavaScript(简称JS)读取CSV文件并使用JSON格式进行展示之前,我们先来了解几个基础概念。 CSV文件是逗号分隔值(Comma-Separated Values)文件的简称,是一种简单的文件格式,用于存储表格数据,...

    java 解析csv文件例子,csv文件 中文乱码问题

    首先,我们需要了解如何使用Java的标准库`java.io`和`java.nio`来读取CSV文件。最常用的是使用`BufferedReader`配合`Scanner`或者`Files.lines()`方法。例如: ```java import java.io.BufferedReader; import java...

    java使用jdbc将数据库数据导出到csv文件.pdf

    Java 使用 JDBC 将数据库数据导出到 CSV 文件 Java 是一种广泛使用的编程语言,它提供了多种方式来处理数据库数据,而 JDBC(Java Database Connectivity)是 Java 中连接数据库的标准 API 之一。将数据库数据导出...

    PLSQL导入.csv文件.docx

    PLSQL 导入 CSV 文件是指使用 PLSQL 语言将 CSV 文件的数据导入到 Oracle 数据库中。 在 PLSQL 中导入 CSV 文件之前,需要首先将 Excel 文件保存为 CSV 格式。这是因为 CSV 文件是文本文件,可以轻松地被 PLSQL ...

    csv文件批量合并工具

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

    csv文件读写操作

    对于大数据量的CSV文件,可以考虑使用更高效的文件读写方法,如`std::ifstream`和`std::ofstream`,或者使用内存映射文件(`CreateFileMapping`和`MapViewOfFile`)。 8. **测试与调试** 完成代码编写后,进行...

    CSV文件数据抽取

    1. **读取CSV文件**:首先需要使用编程语言(如Python、Java、R等)中的库函数读取CSV文件。例如,Python中可以使用pandas库的`read_csv()`函数来完成这项工作,它能将CSV文件加载为DataFrame对象,方便后续处理。 ...

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

    在IT行业中,CSV(Comma Separated Values)文件是一种广泛使用的数据交换格式,因其简单、通用而备受青睐。本文将深入探讨如何读取和创建CSV文件,并特别关注自动解析文件编码方式这一关键环节。我们将使用Java语言...

    C语言读取CSV文件

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

    C#文件流读取CSV文件

    虽然文件流可以处理CSV文件,但处理Excel文件(.xlsx或.xls)通常需要使用更复杂的库,如EPPlus或NPOI。这些库允许你直接操作Excel工作表,包括读写单元格、样式、公式等。 5. **WinExport库**: 压缩包中提到的...

    java操作csv文件(读、写)

    在做项目的时候,发现使用POI无法解析以csv文件结尾的文件,虽然csv文件能用Excel打开,但是csv文件没有像Excel一样有规定的电子表格形式,故使用POI无法解析csv文件,在网上找了一下,发现java有提供java csv文件来...

    将多个csv文件合并成一个csv文件的工具,C#编写,含源代码。支持忽略列头

    本话题关注的是如何使用C#编程语言来实现一个工具,将多个CSV文件合并为一个单一的CSV文件,同时支持忽略列头。 首先,我们要理解CSV文件的结构。CSV文件是一种纯文本文件,每一行代表一行数据,列与列之间由逗号...

    csv合并工具,csv合并器,csv文件合并工具

    CSV文件批量合并工具(批量合并多个CSV文件)是一款简洁好用,绿色小巧...CSV文件批量合并工具非常的使用,让你能够更轻松快捷的进行CSV文件合并工作,非常方便。可以同时批量合并多个CSV文本文件,提高文件合并的效率。

    CSV表格拆分,可以把一个CSV文件按固定行数拆分成多个文件

    CSV(Comma Separated Values)是一种常见的数据存储格式,它以纯文本形式存储表格数据,每一行代表一条记录,列...对于初学者,理解CSV文件的基本概念和拆分工具的使用方法是十分重要的,这有助于提升数据处理效率。

    VC++读写CSV文件的例子

    下面将详细介绍如何使用VC++进行CSV文件的读写操作,并提供相关的编程技巧。 首先,CSV文件的结构非常简单,每一行代表一个记录,每个记录的数据项由逗号分隔。例如: ``` 姓名,年龄,性别 张三,25,男 李四,30,女 ...

    thinkphp下 导入导出csv文件

    在IT行业中,CSV(Comma Separated Values)文件是一种广泛使用的数据交换格式,因其简单、通用而备受青睐。ThinkPHP是中国流行的PHP框架之一,它提供了一系列功能强大的工具,包括处理CSV文件的导入与导出。在...

    大的CSV文件分割成小的csv文件

    把大的csv文件分割成小的csv文件,主要针对处理在数据分析时大的csv文件一次加载不进来的问题

    csv大文件打开器

    - **数据压缩**:在传输或存储大型CSV文件时,可以考虑先进行压缩,如使用gzip或zip,以减少磁盘空间占用和传输时间。 - **数据库管理**:对于经常需要查询和分析的数据,导入到数据库系统(如MySQL、PostgreSQL或...

    MFC 读取csv文件

    CSV文件因其简洁的格式和广泛的兼容性而广泛使用。下面我们将详细介绍如何使用MFC来读取CSV文件。 首先,理解CSV文件的基本结构至关重要。CSV文件由一系列行组成,每行包含一个或多个字段,字段之间用逗号分隔。...

    matlab读取csv文件例程,读取指定路径下的所有csv文件

    matlab读取csv文件例程,读取指定路径下的所有csv文件

Global site tag (gtag.js) - Google Analytics