Python 内置模块 文件与目录 特殊格式

本文详细介绍了Python的csv模块,包括CSV文件的特性、功能、使用方法以及相关参数。csv模块用于读取和写入CSV格式的文件,支持reader和writer对象,以及DictReader和DictWriter。通过dialect参数可以设定不同的分隔符和引用符,writer对象可以将数据转换为字符串格式写入文件,而DictReader和DictWriter则提供了以字典方式处理数据的便利。此外,还可以自定义dialect和注销已定义的dialect。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.csv模块

参见:https://blog.youkuaiyun.com/dominic_z/article/details/81362610 \quad https://blog.youkuaiyun.com/tcy23456/article/details/85228189

1.CSV文件:

逗号分隔符文本格式,常用于数据交换/Excel文件和数据库数据的导入导出

在这里插入图片描述

·以纯文本存储数/文本,值没有类型,均为str
·文件的每一行代表一条数据,每条记录包含由','分隔的一/多个属性值
·默认读写用逗号做分隔符(delimiter),双引号作引用符(quotechar)
·不能指定字体颜色等样式
·不能指定单元格的宽高,不能合并单元格
·没有多个工作表
·不能嵌入图像图表

#说明:
·用writer写数据None被写成空字符串
·浮点型调用repr()转化成字符串
·非字符串型数据被str()成字符串存储

2.功能:

csv模块用于读取/写入csv格式的文件

3.使用:

#模块常量:
quoting=csv.QUOTE_MINIMAL=0
#writer对象只引用那些包含特殊字符
quoting=csv.QUOTE_ALL=1
#writer对象引用所有字段
#如字段分隔符,quotechar或任何字符lineterminator
quoting=csv.QUOTE_NONNUMERIC=2
#writer对象引用所有非数字字段
#指示读者将所有非引用字段转换为float类型
quoting=csv.QUOTE_NONE=3,escapechar='$'
#writer对象不引用字段(无引用符)
#如未设置escapechar错误抛出;指示reader不对引号字符执行特殊处理

#函数:
lines=csv.reader(csvfile,dialect ='excel',**fmtparams)
#返回一个读取器对象,它将迭代给定csv文件中的行
#参数说明:
#csvfile:要读取的文件对象;可选
#必须是支持迭代(Iterator)的对象
#可以是file/list;如果是file,打开时需要加"b"标志参数
#dialect:规定以什么规范操作csv文件
#可选excel,excel-tab,unix;默认为excel
#fmtparams:格式化参数(覆盖之前dialect对象指定的编码风格);可选
#  delimiter='':指明分割符;多数为','
#  quotechar='':指明引用符(被引用符包裹的内容为一个整体,不分割);多数为' "" '
#  quoting='':指明引用的模式;csv.QUOTE_系列均可传入
#  doublequote='':碰到了在引用符之中的引用符,会吧连续的两个引用符看做一个双引用符
#  escapechar='':作用同上,但可指定非引用符的符号起到该作用
fileObj = open('E:/inputFile.csv','r')
csvReader=csv.reader(fileObj)
#方法:
csv.reader().next()
#属性:
csv.reader().dialect
csv.reader().line_num
 
csv.writer(f,dialect ='excel',**fmtparams )
#返回一个编写器对象,负责将用户的数据转换为给定类文件对象上的分隔字符串
#参数说明:同上
#属性:
csv.writer().dialect
csv.writer().writeheader
csv.writer().writerow:一行一行写入
csv.writer().writerows:一次写入多行
 
csv.DictReader()
#字典读
#方法:
csv.DictReader().__next__()# 称之为next(reader)
#属性:
csvreader.dialect:解析器使用的方言的只读描述
csvreader.line_num:从源迭代器读取的行数;这与返回的记录数不同,因为记录可以跨越多行
csvreader.fieldnames:从文件中读取第一条记录时初始化此属性
 
csv.DictWriter()
#方法:
csvwriter.writerow(row):将row写入writer的文件对象,根据当前方言进行格式化;支持迭代
csvwriter.writerows(rows):将行中的所有元素写入编写器的文件对象,并根据当前方言进行格式化;支持迭代
DictWriter.writeheader():公共方法;用字段名称写一行
#属性:
csvwriter.dialect#使用的方言只读描述 

register_dialect(name,dialect,**fmtparams)
#用来自定义dialect的
#参数说明:
#name:自定义的dialect的名字;比如默认的是'excel',可以定义成'mydialect'
#其他同前

unregister_dialect(name)
#用于注销自定义的dialect
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值