Python基礎(chǔ)文件操作讀寫

讀寫文件是最常見的IO操作。Python內(nèi)置了讀寫文件的函數(shù),用法和C是兼容的。
讀寫文件前,我們先必須了解一下,在磁盤上讀寫文件的功能都是由操作系統(tǒng)提供的,現(xiàn)代操作系統(tǒng)不允許普通的程序直接操作磁盤,所以,讀寫文件就是請求操作系統(tǒng)打開一個(gè)文件對(duì)象(通常稱為文件描述符),然后,通過操作系統(tǒng)提供的接口從這個(gè)文件對(duì)象中讀取數(shù)據(jù)(讀文件),或者把數(shù)據(jù)寫入這個(gè)文件對(duì)象(寫文件)。

一、文件操作流程
打開文件,得到文件句柄并賦值給一個(gè)變量
通過句柄對(duì)文件進(jìn)行操作
關(guān)閉文件(用with語法可免)
二、常規(guī)操作


PythonEco

read()
<b>調(diào)用read()會(huì)一次性讀取文件的全部內(nèi)容,如果文件有10G,內(nèi)存就爆了,所以,要保險(xiǎn)起見,可以反復(fù)調(diào)用read(size)方法,每次最多讀取size個(gè)字節(jié)的內(nèi)容。另外,調(diào)用readline()可以每次讀取一行內(nèi)容,調(diào)用readlines()一次讀取所有內(nèi)容并按行返回list。因此,要根據(jù)需要決定怎么調(diào)用。

讀取總結(jié):如果文件很小,read()一次性讀取最方便;如果不能確定文件大小,反復(fù)調(diào)用read(size)比較保險(xiǎn);如果是配置文件,調(diào)用readlines()最方便

三、open的打開模式
打開文件的模式有:

r,只讀模式(默認(rèn))。

w,只寫模式?!静豢勺x;不存在則創(chuàng)建;存在則刪除內(nèi)容;】

a,追加模式?!究勺x; 不存在則創(chuàng)建;存在則只追加內(nèi)容;】

"+" 表示可以同時(shí)讀寫某個(gè)文件

r+,可讀寫文件?!究勺x;可寫;可追加】

w+,寫讀

a+,同a

"U"表示在讀取時(shí),可以將 \r \n \r\n自動(dòng)轉(zhuǎn)換成 \n (與 r 或 r+ 模式同使用)

rU

r+U
"b"表示處理二進(jìn)制文件(如:FTP發(fā)送上傳ISO鏡像文件,linux可忽略,windows處理二進(jìn)制文件時(shí)需標(biāo)注)

rb

wb

ab

四、with語句
文件讀寫結(jié)束后務(wù)必要調(diào)用f.close()來關(guān)閉文件。當(dāng)我們寫文件時(shí),操作系統(tǒng)往往不會(huì)立刻把數(shù)據(jù)寫入磁盤,而是放到內(nèi)存緩存起來,空閑的時(shí)候再慢慢寫入。只有調(diào)用close()方法時(shí),操作系統(tǒng)才保證把沒有寫入的數(shù)據(jù)全部寫入磁盤。忘記調(diào)用close()的后果是數(shù)據(jù)可能只寫了一部分到磁盤,剩下的丟失了。使用with語句,可避免這樣的錯(cuò)誤


PythonEco

五、examples
Tips:python修改文件時(shí),使用w模式會(huì)將原本的文件清空/覆蓋。可以先用讀(r)的方式打開,寫到內(nèi)存中,然后再用寫(w)的方式打開。

需求:實(shí)現(xiàn)sed簡單替換功能

定義一個(gè)函數(shù),帶有4個(gè)參數(shù)
x 表示要更新的文件名稱
y 表示要被替換的內(nèi)容
z 表示 替換后的內(nèi)容
s 默認(rèn)參數(shù)為 1 表示只替換第一個(gè)匹配到的字符串
如果參數(shù)為 s = 'g' 則表示全文替換


PythonEco

六、替換文件的兩種方法
python修改文件時(shí),使用w模式會(huì)將原本的文件清空/覆蓋??梢韵扔米x(r)的方式打開,寫到內(nèi)存中,然后再用寫(w)的方式打開。
(1)把文件寫進(jìn)內(nèi)存之后在修改

PythonEco

(2)讀取原文件并將新內(nèi)容寫在新文件中

Light.

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 讀寫文件是最常見的IO操作。Python內(nèi)置了讀寫文件的函數(shù),用法和C是兼容的。讀寫文件前,我們先必須了解一下,在...
    海龍_Lewis閱讀 504評(píng)論 0 1
  • [轉(zhuǎn)]C/C++ 文件讀寫操作總結(jié) 在編程的過程中,文件的操作是一個(gè)經(jīng)常用到的問題,在C++Builder中,可以...
    天之道天知道閱讀 5,294評(píng)論 0 7
  • feisky云計(jì)算、虛擬化與Linux技術(shù)筆記posts - 1014, comments - 298, trac...
    不排版閱讀 4,356評(píng)論 0 5
  • 官網(wǎng) 中文版本 好的網(wǎng)站 Content-type: text/htmlBASH Section: User ...
    不排版閱讀 4,723評(píng)論 0 5
  • 第二十章 小爸小媽 01 僉村近幾日很是熱鬧,原來連只陌生的小家雀兒都見不到一只的村子,突然闖進(jìn)來許多陌生人,他們...
    文小麗閱讀 393評(píng)論 8 15

友情鏈接更多精彩內(nèi)容