0
点赞
收藏
分享

微信扫一扫

高家俊 3.10 三大神器和csv文件操作

就是耍帅 2022-03-16 阅读 54

高家俊 3.10 三大神器和csv文件操作

迭代器

1.说明是迭代器(iter

迭代器是容器型数据类型。

特点:无法通过打印迭代器查看元素、也无法统计元素个数;

​ 需要使用元素的时候必须将元素从迭代器中取出来,取出以后该元素就从迭代器中消失。

2.创建迭代器

将其他序列转换成迭代器:iter(序列)

3.获取迭代器的元素

不管以什么的方式获取到了迭代器的元素,被获取的元素一定会从迭代器中消失。

1)获取单个元素:next(迭代器)

2)遍历:for x in iter(序列)

生成器

1.什么是生成器

生成器是一种容器,但是这个保存的不是多个数据,而是产生(创建)多个数据的算法。

同时具有迭代器的保存数据的特点:打印看不到内容;不支持len操作;元素也是取一个就少一个,而且不能再放回生成器中。

注意:生成器获取元素和迭代器获取元素的方法一样。

2.创建生成器

调用一个带有yueld关键的函数就可以得到一个生成器对象。

注意:如果函数中有yield,那么调用这个函数不会执行函数体,也不会获取函数返回值,而是创建一个生成器对象。

3.控制生成器产生数据的个数和值

生成器产生数据的个数和值,由执行函数体的时候会遇到几次yield,以及每次遇到yield的时候后的值来绝对。

4.生成器创建数据的原理

调用函数创建生成器的时候不会执行函数体,在通过生成器对象获取生成器中的元素的时候才会执行函数,而且每次在执行函数体的是只会执行到yield就停止,并且记录停止位置,下次再获取元素的时候从上次结束的位置接着执行。

装饰器(了解)

1.什么是装饰器

装饰器是用来给函数添加功能。

2.给函数添加功能

1)通过直接修改原函数的代码可以给函数添加功能

存在问题:如果多个函数需要添加同样的功能,需要修改多个函数的代码,并且添加相同的代码;

​ 如果需要取消添加的功能,又要重新修改多个函数的代码。

2)使用装饰器

写装饰器的套路

def 装饰器名(f):
	def new_f(*args, **kwargs):
        需要实现的新增功能
        recult = f(*args, **kwargs)
        需要实现的新增功能
        retcrn result
    return new_f

csv文件操作

1.什么是csv文件

csv文件又叫逗号分隔值文件,让数据以表格的方式存储的简单的表格文件。

2.csv文件读操作

1)方法一 - 读文件内容得到一个迭代器,迭代器中的元素是每一个内容对应的列表。

a.创建reader对象:csv.render(文件对象)- 创建文件对应的reader,并且获取文件内容。

注意:打开csv文件的时候需要给参数newline赋值为空串。

f = open(‘文件路径’, encoding='utf-8', newline='')

b.通过reader对象获取文件内容,reader对象本质是一个迭代器。

next(f)

list(f)

2)方法二 - 读文件内容得到一个迭代器,迭代器中的元素是每一行内容对应的字典,键是每一列的第一行数据。

2.csv文件写操作

1)方法一 - 以列表为单位写入一行数据

a.创建writer对象:csv.writer(文件对象)

b.写入数据

writer对象.writerow(列表) - 一次写入一行数据;

writer对象.writerows(元素是列表的列表) - 同时写入多行数据。

2)方法二 - 以字典为单位写入一行数据

a.创建DictWriter对象:csv.DictWriter(文件对象,字典的键)

b.将字典的键作为文件内容写入文件的第一行

c.写入数据

writer对象.writerow(字典) - 一次写入一个数据;

writer对象.writerows(字典) - 同时写入多行数据。

举报

相关推荐

0 条评论