文章目录
1 CSV文件
逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本)。
# 下面都是csv文件的内容格式
1,2,3,4,5
1,2,"1,3"
1,2,"a,""f"
- CSV 是一个被行分隔符、列分隔符划分成行和列的文本文件。
- CSV 不指定字符编码。
它有以下规范:
- 行分隔符为\r\n,最后一行可以没有换行符
- 列分隔符常为逗号或者制表符。每一行称为一条记录record
- 字段可以使用双引号括起来,也可以不使用。如果字段中出现了双引号、逗号、换行符必须使用双引号括起来。
- 如果字段的值是双引号,需要额外使用一个个双引号,表示一个转义。
- 表头可选,和字段列对齐就行了。
1.1 手动生成一个csv文件
只需要打开一个文件,按照CSV的格式,编写内容,然后写入文件中去即可。
from pathlib import Path
p = Path(r'E:\Python - base - code\chapter06文件\test.csv')
p.touch()
csv_body = '''\
no,name,age,comment
1,daxin,20,"I Like Cat"
2,tom,30,"I Like Movice"
3,ben,40,"I""m super man # "" 表示"
4xyz"
'''
with open(p,'a+') as f:
f.write(csv_body)
1.2 cvs模块
Python提供的csv模块用于处理csv文件,主要通过读(reader)
和写(writer)
两种方式:
1.2.1 reader方法
csv模块的reader方法,用于读模式打开一个csv文件,返回一个reader对象
,是一个行迭代器
。它的基本格式为:
csv.reader(iterable, dialect='excel',**fmtparams)
dialect
:表示使用excel的方言(标准)去读取**fmtparams
: 对excel的规范进行自定义设置
可以设置的参数有:
- delimiter:列分隔符(逗号)
- lineterminator:行分隔符\r\n
- quotechar:字段的引用符号,缺省为 " 双引号
- 双引号的处理(
一般使用doublequote=True
,按照默认的来)- doublequote 双引号的处理,默认为True。如果碰到数据中有双引号,而quotechar也是双引号,doublequote=True时,则使用2个双引号表示,False表示使用转义字符将作为双引号的前缀
- escapechar 一个转义字符,默认为None
- writer = csv.writer(f, doublequote=False, escapechar=’@’) 遇到双引号,则必须提供转义字符
- quoting 指定双引号的规则
- QUOTE_ALL 所有字段
QUOTE_MINIMAL
特殊字符字段,Excel方言使用该规则- QUOTE_NONNUMERIC非数字字段
- QUOTE_NONE都不使用引号。
建议都是用默认规则