Python檔案操作讀,寫,追加以及檔案修改

2022-09-02 13:18:10 字數 2598 閱讀 8155

1. 檔案操作的函式

open(檔名(路徑), mode="?", encoding="字符集")

需要注意encoding表⽰編碼集. 根據⽂件的實際儲存編碼進行獲取資料, 對於我們⽽⾔. 更多的是utf-8.

2. 模式: r, w, a, r+, w+, a+, rb, wb, ab, r+b, w+b, a+b

r  唯讀

w  只寫

a  追加

r+  讀寫

w+  寫讀

a+  追加寫讀

b  處理非文字檔案

rb  唯讀位元組

wb  只寫位元組

ab  追加位元組

需要注意encoding表示編碼集. 根據檔案的實際儲存編碼進行獲取資料, 對於我們⽽言. 更多的是utf-8.

rb. 讀取出來的資料是bytes型別, 在rb模式下. 不能選擇encoding字符集.

絕對路徑和相對路徑:

1. 絕對路徑:從磁碟根⽬錄開始一直到檔名.

2. 相對路徑:同⼀個⽂件夾下的檔案.相對於當前這個程式所在的⽂件夾⽽言.如果在同乙個⽂件夾中. 則相對路徑就是這個檔名. 如果在上一層資料夾. 則要../

我們更推薦大家使⽤相對路徑. 因為在我們把程式拷貝給別人使⽤的時候. 直接把項⽬拷⻉走就能運行. 但是如果用絕對路徑. 那還需要拷⻉外部的⽂件.

讀取⽂件的方法(r,rb):

1. read() 將檔案中的內容全部讀取出來. 弊端: 佔記憶體. 如果⽂件過大.容易導致記憶體崩潰

2. read(n)讀取n個字元.需要注意的是.如果再次讀取.那麼會在當前位置繼續去讀⽽不是從頭讀, 如果使用的是rb模式. 則讀取出來的是n個位元組

3. readline() ⼀次讀取⼀⾏資料, 注意: readline()結尾, 注意每次讀取出來的資料都會有⼀個\n 所以呢. 需要我們使⽤strip()⽅法來去掉\n或者空格

4. readlines()將每一⾏形成⼀個元素,放到⼀個列表中.將所有的內容都讀取出來.所以也是. 容易出現記憶體崩潰的問題.不推薦使⽤

5. 迴圈讀取.這種⽅式是最好的.每次讀取⼀⾏內容.不會產生記憶體溢位的問題.

注意: 讀取完的⽂件控制代碼⼀定要關閉 close()

寫模式(w, wb)

1.寫的時候注意. 如果沒有檔案. 則會建立⽂件, 如果⽂件存在. 則將原件中原來的內容刪除, 再 寫入新內容

2.wb模式下. 可以不指定開啟檔案的編碼. 但是在寫⽂件的時候必須將字串轉化成utf-8的 bytes資料

追加(a, ab)

1.在追加模式下. 我們寫入的內容會追加在⽂件的結尾.

讀寫模式(r+, r+b)

對於讀寫模式. 必須是先讀. 因為預設游標是在開頭的. 準備讀取的. 當讀完了之後再進⾏寫入. 我們以後使⽤頻率最⾼的模式就是r+

所以記住: r+模式下. 必須是先讀取. 然後再寫入

寫讀(w+, w+b)

先將所有的內容清空. 然後寫入. 最後讀取. 但是讀取的內容是空的, 不常⽤

追加讀(a+)

a+模式下, 不論先讀還是後讀. 都是讀取不到資料的.

3. 常用的操作

1. 游標(seek)*

seek(0) 開頭

seek(0,2) 結尾

seek(n) 游標移動到n位置, 注意, 移動的單位是byte. 所以如果是utf-8的中文部分要是3的倍數.

通常我們使用seek都是移動到開頭或者結尾.

移動到開頭: seek(0)

移動到結尾: seek(0,2) seek的第二個參數列⽰的是從哪個位置進⾏偏移, 預設是0, 表⽰開頭, 1表示當前位置, 2表⽰結尾

3. truncate()截斷⽂檔案

深坑請注意: 在r+模式下. 如果讀取了內容. 不論讀取內容多少. 游標顯⽰的是多少. 在寫入或者操作檔案的時候都是在結尾進⾏的操作.

所以如果想做截斷操作. 記住了. 要先挪動游標. 挪動到你想要截斷的位置. 然後再進⾏截斷

關於truncate(n), 如果給出了n. 則從開頭開頭進⾏截斷, 如果不給n, 則從當前位置截斷. 後⾯的內容將會被刪除

2. tell() 游標的位置

tell()使用  tell()可以幫我們獲取到當前游標在麼位置

3. truncate 截斷檔案

深坑請注意: 在r+模式下. 如果讀取了內容. 不論讀取內容多少. 游標顯⽰的是多少. 在寫入或者操作檔案的時候都是在結尾進⾏的操作.

所以如果想做截斷操作. 記住了. 要先挪動游標. 挪動到你想要截斷的位置. 然後再進⾏截斷

關於truncate(n), 如果給出了n. 則從開頭開頭進⾏截斷, 如果不給n, 則從當前位置截斷. 後⾯的內容將會被刪除

4. 修改檔案

1. 引入os模組

2. 開啟目標檔案, r

3. 開啟檔案副本, w

4. 從r中讀取內容進行修改. 寫入到副本中

5. 刪除原始檔

6. 重新命名副本

修改⽂件以及另⼀種開啟檔案的方式

⽂件修改: 只能將檔案中的內容讀取到記憶體中, 將資訊修改完畢, 然後將源⽂件刪除, 將新⽂件的名字改成老⽂件的名字.

python 檔案操作 讀,寫,追加

open 檔案的路徑,開啟檔案的方式,開啟的檔案編碼 檔案的路徑 可以使用絕對路徑,也可以使用相對路徑 建議使用相對路徑 開啟檔案的方式 訪問檔案的方式 r 唯讀方式開啟檔案,檔案的執政會放在檔案開頭,如果檔案不存在就會報錯 w 開啟乙個檔案只用於寫入,如果這個檔案已存在,就將檔案替換,如果檔案不存...

Python 檔案操作(讀 寫 追加 檔案指標)

一 檔案操作主要有讀r 讀寫r 寫w 寫讀w 追加a 追加讀a 幾種模式 1 讀模式r 讀寫模式r 1 不能寫 2 檔案不存在的話會報錯 f.open username.txt encoding utf 8 以讀的方式開啟檔案,windows下要加encoding要不然會報錯 python3中只有o...

Python中的檔案IO操作(讀寫檔案 追加檔案)

python中檔案的讀寫包含三個步驟 開啟檔案,讀 寫檔案,關閉檔案。檔案開啟之後必須關閉,因為在磁碟上讀寫檔案的功能是由作業系統提供的,檔案作為物件,被開啟後會占用作業系統的資源,而作業系統在同一時間內開啟檔案的數量是有限的。開啟檔案 python view plain copy f open 路...