一,打開(kāi)文件
python中打開(kāi)文件的函數(shù)為open('filename',mode='r',encode='None'),open函數(shù)默認(rèn)返回文件的句柄,我們可以根據(jù)句柄來(lái)對(duì)文件進(jìn)行增,刪,改,查的操作。將句柄賦給我們定義的變量,假設(shè)我們定義變量為f,則f=open('filename',mode='r',encode='utf-8')或者withopen('filename')asf。
注意點(diǎn):
python解釋器打開(kāi)文件時(shí),是對(duì)硬盤進(jìn)行操作,需要內(nèi)核態(tài)才可以操作硬盤,故此時(shí)python解釋器是調(diào)用操作系統(tǒng)的文件讀取接口。windows中文版本默認(rèn)使用GBK編碼表,linux默認(rèn)使用utf-8,所有如果操作的文件在windows下,非GBK編碼的,需要在open函數(shù)中聲明編碼類型,使操作系統(tǒng)運(yùn)用相應(yīng)的編碼規(guī)則進(jìn)行解碼讀取,防止串碼,亂碼現(xiàn)象。
2.open主要有三種模式,讀(r),寫(w),追加(a),其中,默認(rèn)為讀模式。各個(gè)模式的詳解,見(jiàn)下文。
二,關(guān)閉文件
關(guān)閉文件有兩組方式:
1.使用f.close(),f為open返回的句柄賦值的變量名。
2.程序結(jié)束后,自動(dòng)關(guān)閉。第一個(gè)方法容易造成文件寫操作時(shí),數(shù)據(jù)的丟失。原因是寫數(shù)據(jù)時(shí),數(shù)據(jù)會(huì)先保存在內(nèi)存中,文件關(guān)閉時(shí)才會(huì)寫入硬盤,此時(shí)如果文件未關(guān)閉,軟件因?yàn)楫惓1罎?,?dǎo)致內(nèi)存中的數(shù)據(jù)丟失,且未寫入硬盤中。作為第一種關(guān)閉方法的優(yōu)化,是使用:withopen('filename')asf。with會(huì)創(chuàng)建一個(gè)程序塊,將文件操作置于with程序塊下,這樣with控制塊結(jié)束,文件也會(huì)自動(dòng)關(guān)閉。
語(yǔ)法如下:
withopen('f1.txt')asf1,open('f2.txt')asf2:
......
以上內(nèi)容為大家介紹了python文件操作之打開(kāi)文件和關(guān)閉文件,希望對(duì)大家有所幫助,如果想要了解更多Python相關(guān)知識(shí),請(qǐng)關(guān)注IT培訓(xùn)機(jī)構(gòu):千鋒教育。