python+开发培训

Python中的csv模块

1. csv模块说明:

1.1 默认读写用逗号做分隔符(delimiter),双引号作引用符(quotechar)

1.2 用writer写数据None被写成空字符串,浮点型调用repr()转化成字符串。非字符

串型数据被str()成字符串存储。

1.3 open函数

import locale ; locale.getpreferredencoding()# 查看本地编码'cp936'

open('some.csv', newline='', encoding='utf-8')

# 使用系统默认编码将文件解码为unicode可使用不同的编码解码文件

# 如果newline=''没有指定,嵌入引用字段内换行符将不会被正确地解释

4)RFC 4180 提供了一些标准:

# 内容为纯文本;包含记录

# 每条记录是用单个分隔字符将各属性分隔

# 每条记录的属性序列是相同的pandas可以通过PyPI的 pip安装 。

2.模块内容

2.1模块常量:引用约定

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不对引号字符执行特殊处理。

2.21.函数:

csv.reader(f,dialect ='excel',** fmtparams )# 返回一个读取器对象,它将迭代给定csv文件中的行。

# 属性:

csv.reader().dialect

csv.reader().line_num

csv.writer(f,dialect ='excel',** fmtparams ) # 返回一个编写器对象,负责将用户的数据转换为给定类文件对象上的分隔字符串

# 属性方法:

writer.writerow

writer.writerows

writer.dialect

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 # 使用的方言只读描述

# 返回所有已注册方言的名称。

# 数据读取

# import csv

# with open(r'C:\Users\Alienware\Desktop\test.csv','r') as f:

# all = csv.reader(f) #读取所有数据 返回一个csv对象

# print(type(all))

# for i in all: #遍历csv对象 返回csv文件中的所有数据 list类型

# print(i)

# 数据写入import csv#newline=''表示新行用空字符表示 这样换行写入数据时就不会出现空行

with open(r'C:\Users\Alienware\Desktop\test.csv','a',newline='') as f:

all = csv.writer(f)

#传入列表类型的数据 第一个元素对应第一列 第二个元素对应第二列

# all.writerow(['admin',7]) #一行一行写入

all.writerows([['name','zhangsan'],['class','baoan10']]) #多行写入

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值