也许你会说,我为什么要学习使用CSV模块呢?没有CSV模块我一样可以解析操作CSV文件,比如下面这种代码:

使用这种方式的一个缺点就是你仍然需要去处理一些棘手的细节问题。比如,如果某些字段值被引号包围,你不得不去除这些引号。另外,如果一个被引号包围的字段碰巧含有一个逗号,那么程序就会因为产生一个错误而停止。

默认情况下,CSV库可识别Microsoft Excel所使用的CSV编码规则。这或许也是最常见的形式,并且也会给你带来最好的兼容性。然而,如果你查看CSV的文档,就会发现有很多种方法将它应用到其他编码格式上(如修改分隔字符等,用Tab分隔)。所以你应该总是优先选择CSV模块分割或解析CSV数据。

CSV格式简介

逗号分隔值(Comma-Separated ValuesCSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本)。纯文本意味着该文件是一个字符序列,不含必须像二进制数字那样被解读的数据。CSV文件由任意数目的记录组成,记录间以某种换行符分隔;每条记录由字段组成,字段间的分隔符是其它字符或字符串,最常见的是逗号或制表符。通常,所有记录都有完全相同的字段序列。

CSV文件注意点

如果你正在读取CSV数据并将它们转换为命名元组,需要注意对列名进行合法性认证。一个CSV格式文件有一个包含非法标识符的列头行,这样最终会导致在创建一个命名元组时产生一个ValueError异常而失败。为了解决这问题,你可能不得不先去修正列标题。

还有重要的一点需要强调的是,CSV产生的数据都是字符串类型的,它不会做任何其他类型的转换。如果你需要做这样的类型转换,你必须自己手动去实现。

CSV模块操作示例

输入文件:stocks.csv

输出文件:dest.csv

代码

控制台输出

分析和统计

最后,如果你读取CSV数据的目的是做数据分析和统计的话,你可能需要看一看Pandas包。Pandas包含了一个非常方便的函数叫pandas.read_csv(),它可以加载CSV数据到一个DataFrame对象中去。然后利用这个对象你就可以生成各种形式的统计、过滤数据以及执行其他高级操作了。

参考资料




HTTPX 基础教程-新乡seo|网站优化,网站建设_微信公众号:zeropython—昊天博客