博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
day18-python之迭代器和生成器
阅读量:4577 次
发布时间:2019-06-08

本文共 5895 字,大约阅读时间需要 19 分钟。

1.文件处理模式b模式

1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 # f=open('test.py','rb',encoding='utf-8') #b的方式不能指定编码 4 # f=open('test.py','rb') #b的方式不能指定编码 5 # data=f.read() 6 # #'字符串'---------encode---------》bytes 7 # #bytes---------decode---------》'字符串' 8 # print(data) 9 # print(data.decode('utf-8'))10 # f.close()11 12 13 # f=open('test.py','wb') #b的方式不能指定编码14 # f.write(bytes('1111\n',encoding='utf-8'))15 # f.write('杨件'.encode('utf-8'))16 17 # f=open('test.py','ab') #b的方式不能指定编码18 # f.write('杨件'.encode('utf-8'))19 20 # open('a;ltxt','wt')

2.读取大文件最后一行

1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 f=open('test.txt','rb') 4  5 for i in f: 6     offs=-3 7     n=0 8     while True: 9         f.seek(offs,2)10         data=f.readlines()11         if len(data) > 1:12             print('最后一行',data[-1].decode("utf-8"))13             break14         offs*=2

3.文件操作的其他方法

1 #!/usr/bin/env python  2 # -*- coding:utf-8 -*-  3 # f=open('a.txt','r+',encoding='utf-8')  4 # data=f.read()  5 # print(data)  6 # f.write('你好')  7   8 # f=open('a.txt','r+',encoding='latin-1')  9 # data=f.read() 10 # print(data) 11 # f.write('aaaaaaaaaaa') 12  13 # f=open('a.txt','r',encoding='utf-8',newline='') #读取文件中真正的换行符号 14 f=open('a.txt','r+',encoding='utf-8',newline='') #读取文件中真正的换行符号 15 # 16 # print(f.closed) 17 # print(f.encoding) 18 # f.flush() 19 # print(f.readlines()) 20  21 # print(f.tell()) 22 # f.readline() 23 # print(f.tell()) 24 # 25 # f.seek(1) 26 # print(f.tell()) 27 # print(f.readlines()) 28 # f.seek(3) 29 # print(f.tell()) 30 # print(f.read()) 31  32 # data=f.read(1) 33 # print(data) 34  35 f.truncate(10) 36  37  38 # f.flush() #讲文件内容从内存刷到硬盘 39 # 40 # f.closed #文件如果关闭则返回True 41 # 42 # f.encoding #查看使用open打开文件的编码 43 # f.tell() #查看文件处理当前的光标位置 44 # 45 # f.seek(3) #从开头开始算,将光标移动到第三个字节 46 # f.truncate(10) #从开头开始算,将文件只保留从0-10个字节的内容,文件必须以写方式打开,但是w和w+除外 47 # 48 # f=open('a.txt','r',newline='') 49 # 50 # data=f.readline().encode('utf-8') 51 # print(data) 52 # print(f.tell()) 53  54  55  56  57  58  59  60 # f=open('seek.txt','r',encoding='utf-8') 61 # print(f.tell()) 62 # f.seek(10) 63 # print(f.tell()) 64 # f.seek(3) 65 # print(f.tell()) 66  67 # f=open('seek.txt','rb') 68 # print(f.tell()) 69 # f.seek(10,1) 70 # print(f.tell()) 71 # f.seek(3,1) 72 # print(f.tell()) 73  74  75 # f=open('seek.txt','rb') 76 # print(f.tell()) 77 # f.seek(-5,2) 78 # print(f.read()) 79 # print(f.tell()) 80 # f.seek(3,1) 81 # print(f.tell()) 82  83  84  85  86  87  88  89  90 # 91 # f=open('日志文件.txt','rb') 92 # data=f.readlines() 93 # print(data[-1].decode('utf-8')) 94  95 f=open('日志文件.txt','rb') 96 # 97 # for i in f.readlines(): 98 #     print(i.decode('utf-8')) 99 100 #循环文件的推荐方式101 # for i in f:102 #     print(i)103 104 for i in f:105     offs=-10106     while True:107         f.seek(offs,2)108         data=f.readlines()109         if len(data) > 1:110             print('文件的最后一行是%s' %(data[-1].decode('utf-8')))111             break112         offs*=2

4.迭代器和生成器

1 #!/usr/bin/env python  2 # -*- coding:utf-8 -*-  3   4   5   6 # x='hello'  7 # # print(dir(x))  8 # iter_test=x.__iter__()  9 # # 10 # print(iter_test) 11 # print(iter_test.__next__()) 12 # print(iter_test.__next__()) 13 # print(iter_test.__next__()) 14 # print(iter_test.__next__()) 15 # print(iter_test.__next__()) 16 # print(iter_test.__next__()) 17  18 # l=[1,2,3] 19 # for i in l:  #i_l=l.__iter_()  i_l.__next__() 20 #     print(i) 21  22 # index=0 23 # while index < len(l): 24 #     print(l[index]) 25 #     index+=1 26  27  28 # iter_l=l.__iter__() #遵循迭代器协议,生成可迭代对象 29 # print(iter_l.__next__()) 30 # print(iter_l.__next__()) 31 # 32 # for i in l: 33 #     print(i) 34  35 # s={1,2,3} 36 # 37 # # for i in s: 38 # #     print(i) 39 # iter_s=s.__iter__() 40 # print(iter_s) 41 # print(iter_s.__next__()) 42 # print(iter_s.__next__()) 43 # print(iter_s.__next__()) 44 # print(iter_s.__next__()) 45  46 # dic={'a':1,'b':2} 47 # iter_d=dic.__iter__() 48 # print(iter_d.__next__()) 49  50 # f=open('test.txt','r+') 51 # # for i in f: 52 # iter_f=f.__iter__() 53 # print(iter_f) 54 # print(iter_f.__next__(),end='') 55 # print(iter_f.__next__(),end='') 56 # l=[1,2,3,4,5] 57 # diedai_l=l.__iter__() 58 # while True: 59 #     try: 60 #         print(diedai_l.__next__()) 61 #     except StopIteration: 62 #         # print('迭代完毕了,循环终止了') 63 #         break 64  65 # l=['die','erzi','sunzi','chongsunzi'] 66 # # 67 # iter_l=l.__iter__() 68 # print(iter_l) 69 # print(iter_l.__next__()) 70 # print(iter_l.__next__()) 71 # print(iter_l.__next__()) 72 # print(iter_l.__next__()) 73 # print(iter_l.__next__()) 74 # print(next(iter_l)) #next()---->iter_l.__next__() 75  76  77  78  79  80  81  82  83  84  85 # def test(): 86 #     yield 1 87 #     yield 2 88 #     yield 3 89 # g=test() 90 # print('来自函数',g) 91 # print(g.__next__()) 92 # print(g.__next__()) 93 # print(g.__next__()) 94  95 #三元表达式 96 # name='alex' 97 # # name='linhaifeng' 98 # res='SB' if name == 'alex' else '帅哥' 99 # print(res)100 101 102 #列表解析103 # egg_list=[]104 # for i in range(10):105 #     egg_list.append('鸡蛋%s' %i)106 # print(egg_list)107 108 # l=['鸡蛋%s' %i for i in range(10)]109 # # l1=['鸡蛋%s' %i for i in range(10) if i > 5 ]110 # # l1=['鸡蛋%s' %i for i in range(10) if i > 5 else i] #没有四元表达式111 # l2=['鸡蛋%s' %i for i in range(10) if i < 5] #没有四元表达式112 #113 # # print(l)114 # # print(l1)115 # print(l2)116 117 # laomuji=('鸡蛋%s' %i for i in range(10)) #生成器表达式118 # print(laomuji)119 # print(laomuji.__next__())120 # print(laomuji.__next__())121 # print(next(laomuji))122 # print(next(laomuji))123 # print(next(laomuji))124 # print(next(laomuji))125 # print(next(laomuji))126 # print(next(laomuji))127 # print(next(laomuji))128 # print(next(laomuji))129 # print(next(laomuji))130 #131 l=[1,2,3,34]132 # map(func,l)133 #134 # print(sum(l))135 # print(sum())136 print(sum(i for i in range(10000000)))

 

转载于:https://www.cnblogs.com/sqy-yyr/p/10874892.html

你可能感兴趣的文章
FMDataBase 打开sqlite的外键约束功能
查看>>
Nmap 7.70新增功能——扫描主机所有IP
查看>>
二分图
查看>>
UVA10559&POJ1390 Blocks 区间DP
查看>>
《Linux内核》读书笔记 第十八章
查看>>
【AS3代码】擦窗户效果(也就是流行的妄撮游戏)
查看>>
[bzoj 3289] Mato的文件管理
查看>>
Flutter学习笔记(五)
查看>>
Linux zip命令详解
查看>>
vSphere的exsi root密码忘记了
查看>>
svn的安装过程
查看>>
pure的bug记录2
查看>>
NSCopying简析
查看>>
python抓取51CTO博客的推荐博客的全部博文,对标题分词存入mongodb中
查看>>
oracle 用户 角色 权限
查看>>
P2083 找人
查看>>
MySQL 分区知识点(三)
查看>>
使用pipreqs生成项目依赖
查看>>
android 二维码生成
查看>>
sql server2008 R2安装总结
查看>>