




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
10、文件3.2Python語(yǔ)言程序設(shè)計(jì)Pythonopen()方法用于打開(kāi)一個(gè)文件,并返回文件對(duì)象,在對(duì)文件進(jìn)行處理過(guò)程都需要使用到這個(gè)函數(shù),如果該文件無(wú)法被打開(kāi),會(huì)拋出OSError。注意:使用open()方法一定要保證關(guān)閉文件對(duì)象,即調(diào)用close()方法。open()函數(shù)常用形式是接收兩個(gè)參數(shù):文件名(file)和模式(mode)。open(file,mode='r')讀和寫文件filen:包含了你要訪問(wèn)的文件名稱的字符串值。mode:決定了打開(kāi)文件的模式:只讀,寫入,追加等。所有可取值見(jiàn)如下的完全列表。這個(gè)參數(shù)是非強(qiáng)制的,默認(rèn)文件訪問(wèn)模式為只讀(r)。完整的語(yǔ)法格式為:open(file,mode='r',buffering=-1,encoding=None,errors=None,newline=None,closefd=True,opener=None)參數(shù)說(shuō)明:file:必需,文件路徑(相對(duì)或者絕對(duì)路徑)。mode:可選,文件打開(kāi)模式buffering:設(shè)置緩沖encoding:一般使用utf8errors:報(bào)錯(cuò)級(jí)別newline:區(qū)分換行符closefd:傳入的file參數(shù)類型opener:設(shè)置自定義開(kāi)啟器,開(kāi)啟器的返回值必須是一個(gè)打開(kāi)的文件描述符。讀和寫文件讀和寫文件模式描述'r'以只讀方式打開(kāi)文件(默認(rèn))'w'以只寫方法打開(kāi)文件。若文件不存在,則新建文件;如果文件已存在,則清空文件原有內(nèi)容'x'以獨(dú)占只寫方式打開(kāi)文件。若文件不存在,則新建文件;如果文件已存在,則拋出FileExistsError異常'a'以只寫方法打開(kāi)文件。若文件不存在,則新建文件;如果文件已存在,在文件原有內(nèi)容末尾追加內(nèi)容'b'二進(jìn)制文件模式't'文本文件模式(默認(rèn))'+'更新(讀寫)方式打開(kāi)文件mode參數(shù)有:默認(rèn)為文本模式,如果要以二進(jìn)制模式打開(kāi),加上b。讀和寫文件讀和寫文件以下實(shí)例將字符串寫入到文件foo.txt中:#打開(kāi)一個(gè)文件f=open("/tmp/foo.txt","w")f.write("Python是一個(gè)非常好的語(yǔ)言。\n是的,的確非常好!!\n")#關(guān)閉打開(kāi)的文件f.close()第一個(gè)參數(shù)為要打開(kāi)的文件名。第二個(gè)參數(shù)描述文件如何使用的字符。mode可以是'r'如果文件只讀,'w'只用于寫(如果存在同名文件則將被刪除),和'a'用于追加文件內(nèi)容;所寫的任何數(shù)據(jù)都會(huì)被自動(dòng)增加到末尾.'r+'同時(shí)用于讀寫。mode參數(shù)是可選的;'r'將是默認(rèn)值。讀和寫文件此時(shí)打開(kāi)文件foo.txt,顯示如下:$cat/tmp/foo.txtPython是一個(gè)非常好的語(yǔ)言。是的,的確非常好!!file對(duì)象的方法file對(duì)象使用open函數(shù)來(lái)創(chuàng)建,下表列出了file對(duì)象常用的函數(shù):序號(hào)方法及描述1file.close()關(guān)閉文件。關(guān)閉后文件不能再進(jìn)行讀寫操作。2file.read([size])從文件讀取指定的字節(jié)數(shù),如果未給定或?yàn)樨?fù)則讀取所有。3file.readline([size])讀取整行,包括"\n"字符。4file.readlines([sizeint])讀取所有行并返回列表,若給定sizeint>0,返回總和大約為sizeint字節(jié)的行,實(shí)際讀取值可能比sizeint較大,因?yàn)樾枰畛渚彌_區(qū)。5file.write(str)將字符串寫入文件,返回的是寫入的字符長(zhǎng)度。6file.writelines(sequence)向文件寫入一個(gè)序列字符串列表,如果需要換行則要自己加入每行的換行符。f.read()為了讀取一個(gè)文件的內(nèi)容,調(diào)用f.read(size),這將讀取一定數(shù)目的數(shù)據(jù),然后作為字符串或字節(jié)對(duì)象返回。size是一個(gè)可選的數(shù)字類型的參數(shù)。當(dāng)size被忽略了或者為負(fù),那么該文件的所有內(nèi)容都將被讀取并且返回。以下實(shí)例假定文件foo.txt已存在(上面實(shí)例中已創(chuàng)建):#打開(kāi)一個(gè)文件f=open("/tmp/foo.txt","r")str=f.read()print(str)#關(guān)閉打開(kāi)的文件f.close()執(zhí)行以上程序,輸出結(jié)果為:Python是一個(gè)非常好的語(yǔ)言。是的,的確非常好!!假設(shè)已經(jīng)創(chuàng)建了一個(gè)稱為f的文件對(duì)象。f.readline()f.readline()會(huì)從文件中讀取單獨(dú)的一行。換行符為'\n'。f.readline()如果返回一個(gè)空字符串,說(shuō)明已經(jīng)已經(jīng)讀取到最后一行。#打開(kāi)一個(gè)文件f=open("/tmp/foo.txt","r")str=f.readline()print(str)#關(guān)閉打開(kāi)的文件f.close()執(zhí)行以上程序,輸出結(jié)果為:Python是一個(gè)非常好的語(yǔ)言。f.readlines()f.readlines()將返回該文件中包含的所有行。如果設(shè)置可選參數(shù)sizehint,則讀取指定長(zhǎng)度的字節(jié),并且將這些字節(jié)按行分割。#打開(kāi)一個(gè)文件f=open("/tmp/foo.txt","r")str=f.readlines()print(str)#關(guān)閉打開(kāi)的文件f.close()執(zhí)行以上程序,輸出結(jié)果為:['Python是一個(gè)非常好的語(yǔ)言。\n','是的,的確非常好!!\n']f.readlines()另一種方式是迭代一個(gè)文件對(duì)象然后讀取每行:#打開(kāi)一個(gè)文件f=open("/tmp/foo.txt","r")forlineinf:print(line,end='')#關(guān)閉打開(kāi)的文件f.close()執(zhí)行以上程序,輸出結(jié)果為:Python是一個(gè)非常好的語(yǔ)言。是的,的確非常好!!這個(gè)方法很簡(jiǎn)單,但是并沒(méi)有提供一個(gè)很好的控制。因?yàn)閮烧叩奶幚頇C(jī)制不同,最好不要混用。f.write()f.write(string)將string寫入到文件中,然后返回寫入的字符數(shù)。#打開(kāi)一個(gè)文件f=open("/tmp/foo.txt","w")num=f.write("Python是一個(gè)非常好的語(yǔ)言。\n是的,的確非常好!!\n")print(num)#關(guān)閉打開(kāi)的文件f.close()執(zhí)行以上程序,輸出結(jié)果為:29f.write()如果要寫入一些不是字符串的東西,那么將需要先進(jìn)行轉(zhuǎn)換:#打開(kāi)一個(gè)文件f=open("/tmp/foo1.txt","w")value=('',14)s=str(value)f.write(s)#關(guān)閉打開(kāi)的文件f.close()執(zhí)行以上程序,打開(kāi)foo1.txt文件:$cat/tmp/foo1.txt('',14)f.close()在文本文件中(那些打開(kāi)文件的模式下沒(méi)有b的),只會(huì)相對(duì)于文件起始位置進(jìn)行定位。當(dāng)你處理完一個(gè)文件后,調(diào)用f.close()來(lái)關(guān)閉文件并釋放系統(tǒng)的資源,如果嘗試再調(diào)用該文件,則會(huì)拋出異常。>>>f.close()>>>f.read()Traceback(mostrecentcalllast):File"<stdin>",line1,in?ValueError:I/Ooperationonclosedfile
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年基金從業(yè)考試知識(shí)貼士試題及答案
- 云南紅河哈尼梯田的生態(tài)與農(nóng)業(yè)發(fā)展
- 2025至2030年中國(guó)DV手持減震器市場(chǎng)分析及競(jìng)爭(zhēng)策略研究報(bào)告
- 2025至2030年中國(guó)3,5-二羥基苯甲酸行業(yè)投資前景及策略咨詢報(bào)告
- 人事數(shù)據(jù)分析在HR決策中的應(yīng)用
- 人工智能助力公共文化服務(wù)提升
- 2025年竹籃行業(yè)深度研究報(bào)告
- 互聯(lián)網(wǎng)農(nóng)業(yè)教育培訓(xùn)體系構(gòu)建
- 企業(yè)文化傳播與內(nèi)訓(xùn)的融合策略
- 中國(guó)傳統(tǒng)文化中的道德觀念
- 江蘇省各市中繼頻率一覽表
- (高清正版)T_CAGHP 066—2019危巖落石柔性防護(hù)網(wǎng)工程技術(shù)規(guī)范(試行)
- 全國(guó)各省龐氏輩分收集
- 五金噴涂(噴粉)件檢驗(yàn)規(guī)范28455
- 電光八組合開(kāi)關(guān)
- 家庭衛(wèi)士使用說(shuō)明書智能插座
- (完整版)污水處理廠運(yùn)維方案
- 室外地下綜合管網(wǎng)管道安裝工程施工方案(技術(shù)標(biāo))(1)
- 納稅信用修復(fù)申請(qǐng)表
- 最新蘇教版五年級(jí)數(shù)學(xué)下冊(cè)第四單元 數(shù)學(xué)教案
- 以化妝用品與手法的古今對(duì)比探討昆曲的歷史變遷
評(píng)論
0/150
提交評(píng)論