CSV文件的读取与写入
类似于excel文件
读取csv文件:
with open('C:/Users/Administrator/Desktop/god.csv','r') as fr:
rows=csv.reader(fr)
for row in rows:
print(row)
csv模块会自动为我们转化(格式化),比如双引号变成单引号,没有引号的添加单引号。
2.创建csv文件
创建一个csv也很容易?可以使用csv模块的writer()方法创建一个csv文件操作符,然后调用其writerow方法一行一行的写入,
对应的桌面会生成一个good.csv文件
使用ord(),chr()函数创建了一个连续增长的字母序列。
创建的文件中的字符串不会用双引号括起来,因为csv.writer()并不会自动为字符串增加双引号,若想要增加双引号,可以使用如下代码:
writer=csv.writer(fw,quoting=csv.QUOTE_NONNUMERIC)代替原来的writer=csv.writer(fw)
CSV可以使用的存储模式 | 描述 |
QUOTE_ALL | 为所有的栏增加双引号包围 |
QUOTE_MINIMAL | 仅为包含特殊符号的栏增加双引号包围 |
QUOTE_NONNUMERIC | 为所有非数字的栏增加双引号包围 |
QUOTE_NONE | 在reader函数中,表示不要去掉数据中的双引包围 |
(3)读取方言
不是严格使用逗号作为分隔符的csv(非标准csv文件)的读取与写入:
比如hadoop中的表文件,如果以纯文本的形式输出,则默认的文件分隔符为\x01,也有使用管道符“|”作为分隔符的csv文件,这种csv文件将它称为csv方言(巧了!,星期三组织行为学?----不仅口头语言有方言,肢体语言也有方言,csv文件也有方言。)
创建自定义方言的过程预读取csv方言一样,只需要在csv.writer()函数中传入一个dialect='pipes'参数即可。
(4)将读取的结果转换成字典
如果csv文件拥有大量的栏,想要确认一个数据在第几栏是一件很麻烦的事情,但是,csv模块提供了一种以字典结构返回数据的方式,即使用csv模块中的DictReader()
with open('C:/Users/Administrator/Desktop/god.csv','r') as fr:
rows=csv.DictReader(fr)
for row in rows:
print(row)