当前位置:嗨网首页>书籍在线阅读

02-csv模块

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

16.1 csv模块

CSV文件中的每行代表电子表格中的一行,逗号分隔了该行中的单元格。例如,电子表格example.xlsx(可从异步社区下载)在一个CSV文件中看起来像这样:

4/5/2015 13:34,Apples,73
4/5/2015 3:41,Cherries,85
4/6/2015 12:46,Pears,14
4/8/2015 8:59,Oranges,52
4/10/2015 2:07,Apples,152
4/10/2015 18:10,Bananas,23
4/10/2015 2:40,Strawberries,98

我将使用这个文件作为本章的交互式环境的例子。可以从异步社区本书对应页面下载example.csv,或在文本编辑器中输入文本并保存为example.csv。

CSV文件是简单的,它相对于Excel电子表格少了许多功能。例如,在CSV文件中:

  • 值没有类型,所有东西都是字符串;
  • 没有字体大小或颜色的设置;
  • 没有多个工作表;
  • 不能指定单元格的宽度和高度;
  • 不能合并单元格;
  • 不能嵌入图像或图表。

CSV文件的优势是简单。CSV文件被许多种类的程序广泛地支持,可以在文本编辑器中查看(包括IDLE的文件编辑器),它是表示电子表格数据的直接方式。CSV格式和它声称的完全一致:它就是一个文本文件,具有用逗号分隔的值。

因为CSV文件就是文本文件,所以你可能会尝试将它们读入一个字符串,然后用从第9章学到的技术来处理这个字符串。例如,因为CSV文件中的每个单元格由逗号分隔,所以你可以只是对每行文本调用 split() 方法来取得这些值。但并非CSV文件中的每个逗号都表示两个单元格之间的分界。CSV文件也有自己的转义字符,允许逗号和其他字符作为值的一部分。 split() 方法不能处理这些转义字符。因为这些潜在的bug,所以总是应该使用 csv 模块来读写CSV文件。