文件的打開
函數(shù):open(filename,mode)
返回:一個(gè)文件對(duì)象
filename為文件名,mode為打開的模式創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比三門峽網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式三門峽網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋三門峽地區(qū)。費(fèi)用合理售后完善,10多年實(shí)體公司更值得信賴。
代碼:
file = open('filename','r')
print(file)測(cè)試結(jié)果:
- 模式:
- r:只讀模式打開,文件指針放在開頭
- w:寫模式,默認(rèn)從文件開頭開始覆寫(會(huì)刪除已有內(nèi)容)
- a:追加(寫),默認(rèn)從文件尾部開始寫
- b:以二進(jìn)制形式打開(打開非純文本文件時(shí)使用)
- +:可讀可寫
- x:創(chuàng)建并進(jìn)入寫模式,文件存在則報(bào)錯(cuò)
- t:文本模式
注:‘b’ ’t‘ ‘+’需和其他模式組合使用,w和a如果不存在目標(biāo)文件則會(huì)創(chuàng)建新文件,r模式不存在則會(huì)報(bào)錯(cuò)。代碼:
file = open('test_file','r') #test_file不存在,報(bào)錯(cuò)
測(cè)試結(jié)果:
文件對(duì)象的方法
上面我們創(chuàng)建了一個(gè)名為file的文件對(duì)象,下面介紹文件對(duì)象的方法:
讀操作
- 函數(shù):file.read(size)
返回:從當(dāng)前指針位置開始讀取,以 字符串 或 字節(jié) 對(duì)象形式返回讀取到的數(shù)據(jù)
size為數(shù)值類型的參數(shù),決定讀取數(shù)據(jù)的長(zhǎng)度,省略或小于0則讀取文件的所有內(nèi)容- 函數(shù):file.readline(limit)
返回:從當(dāng)前指針位置開始讀取一行,以 字符串 或 字節(jié) 對(duì)象形式返回該行數(shù)據(jù),返回空說明已經(jīng)讀到了文件的最后一行
limit為數(shù)值類型的參數(shù),可以限制單行讀取的數(shù)據(jù)長(zhǎng)度- 函數(shù):file.readlines(sizeint)
返回:從當(dāng)前指針位置開始讀取,以列表形式,返回文件的所有行(以行為界分割的字符串所組成)
sizeint為數(shù)值類型的參數(shù),決定讀取數(shù)據(jù)的長(zhǎng)度
寫操作
- 函數(shù):file.write(string)
返回:返回當(dāng)前指針?biāo)诘奈恢?br/>string為寫入文件的字符串- 函數(shù):file.writelines(seq)
返回:返回當(dāng)前指針?biāo)诘奈恢?br/>seq為即將寫入的序列,自動(dòng)將字符串拼接并從當(dāng)前位置寫入
文件對(duì)象位置
- 函數(shù):f.tell()
返回:文件對(duì)象當(dāng)前所處的位置, 它是從文件開頭開始算起的字節(jié)數(shù)。
調(diào)整文件對(duì)象位置
- 函數(shù):f.seek(offset, from_what)
返回:返回更改后的所處位置
offset為移動(dòng)的相對(duì)位置,2表示后移2個(gè),-1表示前移1個(gè)
from_what為參考點(diǎn),0為文件開頭,1為當(dāng)前位置,2為文件末尾
注:文本文件中沒有用二進(jìn)制打開的文件必須從開頭計(jì)算位置,即from_what為0,否則會(huì)報(bào)錯(cuò)。
關(guān)閉文件
- 函數(shù):file.close()
當(dāng)你處理完一個(gè)文件后, 調(diào)用 f.close() 來關(guān)閉文件并釋放系統(tǒng)的資源
如果嘗試再調(diào)用該文件,則會(huì)拋出異常。代碼:
file = open('test_file','w+') file.write("hello python\nhello world\nhello westos\n*****") file.close() file = open('test_file','r') print(file.read()) file.seek(0,0) print(file.readable()) print(file.readline()) print(file.tell())測(cè)試結(jié)果:
with語(yǔ)句
利用with語(yǔ)句可以簡(jiǎn)化文件的打開和關(guān)閉
with語(yǔ)句執(zhí)行完畢后會(huì)自動(dòng)關(guān)閉文件對(duì)象
語(yǔ)法:with expression as f: 語(yǔ)句
- 利用with語(yǔ)句將文件1中的數(shù)據(jù)寫入文件2:
with open('data.txt') as f1,\ open('data_test','w+') as f2: f2.write(f1.read())
利用yeild實(shí)現(xiàn)文件的讀取
def bylineread(filename): # 定義一個(gè)生成器 with open(filename) as f: # 打開文件 line = f.readline # 讀取一行 while line: # 讀到最后一行跳出循環(huán) yield line line = f.readline() # 讀取一行 read = bylineread('data.txt') # read代表生成器對(duì)象 for item in read: # 遍歷生成器對(duì)象中的元素 print(item)Iterable
文章名稱:Python基礎(chǔ)【文件】
網(wǎng)站路徑:http://chinadenli.net/article24/ppdice.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開發(fā)、企業(yè)建站、小程序開發(fā)、網(wǎng)站設(shè)計(jì)、關(guān)鍵詞優(yōu)化、品牌網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)