python学习笔记day08 文件功能详解
生活随笔
收集整理的這篇文章主要介紹了
python学习笔记day08 文件功能详解
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
file.read():讀取文件的全部內(nèi)容?
file=open("dang",mode='r+',encoding='utf-8') print(type(file.read())) #str對象 file.close()?
read()函數(shù)中可以寫參數(shù),指定讀取幾個字符(字符:你能看到的文字最小組成單位)
file=open("dang",mode='r+',encoding='utf-8') print(file.read(6)) #str對象 只讀取前六個字符 file.close()?
file.seek():移動光標(biāo)的位置,讀取的是字節(jié)(utf-8 一個英文字符一個字節(jié)表示;一個中文字符用三個字節(jié)表示)
file=open("dang",mode='r+',encoding='utf-8') file.seek(6) #由于seek是按照字節(jié)讀的,所以讀取中文時seek中的參數(shù)必須是3的倍數(shù),由于英文一個字符用一個字節(jié)表示,所以seek參數(shù)無所謂 print(file.read(5)) file.close()運(yùn)行結(jié)果:
需要注意:
read()函數(shù)以字符讀取的,里面參數(shù)是幾就代表需要讀取幾個字節(jié);
seek()函數(shù)是以字節(jié)讀的,如果文件中存儲的都是中文,那么seek參數(shù)必須是3的倍數(shù),因為utf-8一個中文字符用三個字節(jié)表示;如果文件存儲的都是英文,那么seek參數(shù)無所謂了,因為一個英文字符只用一個字節(jié)表示;
?
file.tell()? 告訴文件此時的光標(biāo)在哪里,斷點(diǎn)續(xù)傳中有用;
file=open("dang",mode='r+',encoding='utf-8') file.seek(4) #因為文件存儲的英文字符,seek()參數(shù)可以不是3倍數(shù),一個英文字符用一個字節(jié)表示 print(file.tell()) #返回光標(biāo)的位置 此時應(yīng)該是4 因為上面光標(biāo)移動到4了 # print(file.read(5)) file.close()比如讀取倒數(shù)第幾個字符:
file=open("dang",mode='r+',encoding='utf-8') print(file.read()) #讀完之后,光標(biāo)定位在最后一個位置 index=file.tell() file.seek(index-6) #由于是英文字符,所以seek(index-6) 就是從倒數(shù)第六個字符開始讀;如果是中文字符的話就是從倒數(shù)第二個字符開始讀 print(file.read()) #從倒數(shù)第六個字符開始讀,因為光標(biāo)定位在倒數(shù)第六個字符;readline():僅僅讀取文件的一行--->str
file=open("dang",mode='r',encoding='utf-8') line=file.readline() print(line) file.close()?
我們也可以使用readline()函數(shù)一行一行讀文件,迭代讀取多行:
file=open("dang",mode='r',encoding='utf-8') for i in range(3):line=file.readline().split() #d讀取每一行,然后split函數(shù)把尾部的換行符等去掉,把readline得到的str-->listprint(line) file.close()?
?realdines():讀取文件全部內(nèi)容,存成一個list,文件每一行存成list的一個元素;
file=open("dang",mode='r+',encoding='utf-8') contents=file.readlines() #讀取全部內(nèi)容,每一行作為list的一個元素存儲 print(contents) file.close()文件操作的另外兩個小知識點(diǎn):
? ?for line in file: 讀取文件的全部內(nèi)容一行一行;
file=open('dang',mode='r',encoding='utf-8') for line in file:print(line.split()) file.close()with open as 方式打開文件,不用對文件close
之前open()打開文件,最后都得file.close() 很麻煩,現(xiàn)在可以這樣:
with open('dang',mode='r+',encoding='utf-8') as file:print(file.read()) #可以對文件file句柄進(jìn)行其他操作?
并且使用with open as 可以同時打開多個文件:
with open("dang",mode='r',encoding='utf-8') as file1,open('xixi.txt',mode='r+',encoding='utf-8') as file2:print(file1.read()) #讀取文件dang 相對路徑for line in file2: #讀取文件xixi.txtprint(line.split())?
轉(zhuǎn)載于:https://www.cnblogs.com/xuanxuanlove/p/9530203.html
總結(jié)
以上是生活随笔為你收集整理的python学习笔记day08 文件功能详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: pythonのSocket
- 下一篇: StringBuilder String