CSV(Comma-Separated Values)即逗号分隔值,可以用Excel打开查看,由于是纯文本,任何编辑器也都可打开,但与Excel文件相比,CSV文件有自己的特点:
①值没有类型,所有值都是字符串
②不能指定字体颜色等样式
③不能指定单元格的宽高,不能合并单元格
④没有多个工作表
⑤不能嵌入图像图表
在csv文件中,以逗号作为分隔符,分隔两个单元格,但并不是每个逗号都表示单元格之间的分界,所以即使CSV是纯文本文件,也坚持采用专门的模块进行处理,Python内置有csv模块,我们常常需要读取和处理csv文件的数据。处理csv数据的一个最有用的方法就是把它转换为一个字典列表。
首先在桌面新建一个文本文档,输入内容:
保存并将文件名后缀改为csv获得一个简单的csv文件:
将其复制到编辑器中进行一些读取和处理:
import csv Dict=csv.DictReader(open('新建文本文档.csv','rU')) print(Dict) print(type(Dict)) print(dir(Dict)) ds=[] for d in Dict: for c in d.keys():#for c in d.values(): 获取value值 print(c) ds.append(d) print(ds) print([d.values()for d in Dict])#print([d.keys()for d in Dict])
结果:
<csv.DictReader object at 0x006D12F0>
<class 'csv.DictReader'>
['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__next__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', '_fieldnames', 'dialect', 'fieldnames', 'line_num', 'reader', 'restkey', 'restval']
[]
[odict_values(['a', 'b', 'c', 'd', 'e'])]
进程已结束,退出代码0
DictReader类将会自动地使用csv文件的第一行作为字典的key属性名。DictReader类返回一个将会遍历csv文件所有行的对象。这个文件对象通过open()函数产生。