糖尿病康复,内容丰富有趣,生活中的好帮手!
糖尿病康复 > Pyhton学习——Day9

Pyhton学习——Day9

时间:2022-04-14 01:41:12

相关推荐

Pyhton学习——Day9

#文件操作的其他方法

##############################################################################

#文件的内置操作函数

# 1.closed 查看文件是否是关闭的状态,输出为布尔值,关闭的为True,未关闭的为False

# 2.encoding表示编码的形式,函数方法打开的编码形式

# print(f.encoding)

# cp936

#************************************************************************

#不知道文件编码是什么形式的情况下,还是要写文件或读文件的信息,处理办法:

#用拉丁文的方式打开文件latin-1

# f = open('test','r+',encoding='latin-1')#尽可能多的保留数据

# data = f.read()

# print(data)

# f.write('aaaaaaaa')

#文件的编码获取的是系统的默认编码

# f = open('test','r+',encoding='UTF-8')

# f.flush()#刷新,使用这个命令就会保存文件

# f.isatty()#终端设备

# print(f.tell())

# f.readline()

# f.readline()

# print(f.tell())#光标的当前位置

#newline=''就是不要python自带的屏蔽参数

#文件内光标的移动:除了read()代表读取3个字符,其余的文件内光标的移动都是以字节为单位,如seek、tell、read

# f.seek(3)

# print(f.read())

# 456

# 789

# opqsdasdnagaaaaaaaaaaaaaaaa

# print(f.read(5))

# 123

# 4

# f.truncate(10)#文件截断,属于文件的切割写操作

# print(f.truncate(10))

#####################################################################

# f = open('test','rb')

# print(f.tell())

# f.seek(10)

# print(f.tell())

# f.seek(3)

# print(f.tell())

#seek的移动光标默认是从0的位置开始移动

#############################################################

#seek的几种用法

#1.必须为'rb'模式才可以使用

#参数1为接指定上一次光标后的位置

#参数2为倒序,从结尾开始的光标,前面的顺序必须为负数的形式

# print(f.tell())

# f.seek(-1,2)

# print(f.tell())

# f.seek(3,1)

# print(f.tell())

#################################################################################################################

#高端玩法:打开大文件的最后一行

# f = open('test','rb')

# for i in f:

#offs = -5#偏移量需要自己估计,最后一行大约有多少个字节

#while True:#做一个死循环

# f.seek(offs,2)

# rows = f.readlines()#从当前光标位置开始读取一行的所有内容

# if len(rows) > 1:#如果文件读取的行数超过1行,则打印最后一行

# print('文件的最后一行是%s'%(rows[-1].decode('UTF-8')))

# break

# offs*=2

# 文件的最后一行是+---------------------------------------------------------------------------+

#***************************************************************************************************************#

# 什么是递归?

# 函数自己调用自己的方法就是递归

# 什么是迭代?

# 可以被for循环遍历的,每次循环得到的结果都是上一次的结果得出的

# 什么是迭代器协议?

# 1.迭代器协议是指:对象必须提供一个next方法,执行该方法要么返回迭代中的下一项,要么就引起一个Stoplteration异常,

# 以终止迭代(只能往后不能往前退)

# 2.可迭代对象:实现了迭代器协议的对象(如何实现:对象内部定义一个_iter_()方法)

# 3.协议是一种约定,可迭代对象实现了迭代器协议,python的内部工具(如for循环、sum、min、max函数等)使用迭代器协议访问对象

# l = [1,2,3,4]

# for i in l:

#print(i)

######################Python的for循环机制##########################################################

# for循环的本质:循环所有的对象,全都是使用迭代器协议

#(字符串、列表、元祖、字典、集合、文件对象)这些都不是可迭代对象,只不过在for循环式,调用了内部的_iter_方法,变成了可迭代对象

# 然后for循环调用可迭代对象的_next_方法去取值,而且for循环会捕捉Stoplteration异常,以终止迭代

# l = [1,2,3,4]

# for i in l:#1.先执行_iter_(),再执行next方法

# print(i)#捕捉了异常,不再迭代

# l = [1,2,3,4]

# iter = l.__iter__()#遵循迭代器协议,生成可迭代对象

# print(iter.__next__())

# print(iter.__next__())

# print(iter.__next__())

# print(iter.__next__())

# l = [1,2,3,4]

# index = 0

# while index<len(l):

#print(l[index])

#index+=1

# 1

# 2

# 3

# 4

如果觉得《Pyhton学习——Day9》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。