Pyhton学习——Day9
生活随笔
收集整理的這篇文章主要介紹了
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
##############################################################################
#文件的內置操作函數
# 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
轉載于:https://www.cnblogs.com/pandaboy1123/p/8457942.html
總結
以上是生活随笔為你收集整理的Pyhton学习——Day9的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Redis 如何保持和MySQL数据一致
- 下一篇: Node.js HTTPS