使用python來讀寫⽂件是非常簡單的操作. 我們使用open()函式來開啟⼀個檔案, 獲取到⽂件句柄. 然後通過⽂件控制代碼就可以行各種各樣的操作了. 根據方式的不同能夠行的操作也會有相應的差異.
開啟⽂件的⽅式: r, w, a, r+, w+, a+, rb, wb, ab, r+b, w+b, a+b 預設使⽤的是r(唯讀)模式
需要注意encoding表⽰編碼集. 根據⽂件的實際儲存編碼進行獲取資料, 對於我們⽽言. 更多的是utf-8.
rb. 讀取出來的資料是bytes型別, 在rb模式下. 不能選擇encoding字符集.
我們更推薦⼤家使⽤相對路徑. 因為在我們把程式拷⻉給別⼈使⽤的時候. 直接把項⽬拷⻉走就能運行.
但是如果⽤絕對路徑. 那還需要拷⻉外部的⽂件
讀取⽂件的⽅法:
1. read() 將⽂件中的內容全部讀取出來. 弊端: 佔記憶體. 如果⽂件過⼤大.容易導致記憶體崩潰
2. read(n) 讀取n個字元. 需要注意的是. 如果再次讀取. 那麼會在當前位置繼續去讀⽽不是從頭讀, 如果使⽤的是rb模式. 則讀取出來的是n個位元組
3. readline() ⼀次讀取⼀行資料, 注意: readline()結尾, 注意每次讀取出來的資料都會有⼀個\n 所以呢. 需要我們使用strip()⽅法來去掉\n或者空格
4. readlines()將每⼀行形成⼀個元素, 放到乙個列表中. 將所有的內容都讀取出來. 所以也是.容易出現記憶體崩潰的問題.不推薦使⽤
5. 迴圈讀取. 這種⽅式是好的. 每次讀取⼀行內容.不會產生記憶體溢位的問題
注意: 讀取完的⽂件句柄⼀定要關閉 f.close()寫的時候注意. 如果沒有⽂件. 則會建立⽂件, 如果⽂件存在. 則將原件中原來的內容刪除, 再寫入新內容
嘗試讀⼀讀
wb模式下. 可以不指定開啟檔案的編碼. 但是在寫檔案的時候必須將字元串轉化成utf-8的bytes資料
在追加模式下. 我們寫入的內容會追加在⽂件的結尾
對於讀寫模式. 必須是先讀. 因為預設游標是在開頭的. 準備讀取的. 當讀完了之後再進行寫入. 我們以後使用頻率最⾼的模式就是r+
正確操作是:
錯誤操作是:
所以記住: r+模式下. 必須是先讀取. 然後再寫入
先將所有的內容清空. 然後寫入. 最後讀取. 但是讀取的內容是空的, 不常用
有⼈會說. 先讀不就好了麼? 錯. w+ 模式下, ⼀開始讀取不到資料. 然後寫的時候再將原來的內容清空. 所以, 很少⽤.a+模式下, 不論先讀還是後讀. 都是讀取不到資料的.
還有一些其他的帶b的操作. 就不多贅述了. 就是把字元換成位元組. 僅此⽽已1. seek(n) 游標移動到n位置, 注意, 移動的單位是byte. 所以如果是utf-8的中⽂文部分要是3的倍數.
通常我們使⽤用seek都是移動到開頭或者結尾.
移動到開頭: seek(0)
移動到結尾: seek(0,2) seek的第二個引數表示的是從哪個位置進行偏移, 預設是0, 表⽰開頭, 1表⽰當前位置, 2表示結尾
2. tell() 使用tell()可以幫我們獲取到當前游標在什麼位置
3. truncate() 截斷⽂件
深坑請注意: 在r+模式下. 如果讀取了內容. 不論讀取內容多少. 游標顯示的是多少. 再寫入或者操作⽂件的時候都是在結尾進⾏的操作.
所以如果想做截斷操作. 記住了. 要先挪動游標. 挪動到你想要截斷的位置. 然後再進行截斷關於truncate(n), 如果給出了n. 則從開頭進行截斷, 如果不給n, 則從當前位置截斷. 後⾯的內容將會被刪除⽂件修改: 只能將⽂件中的內容讀取到記憶體中, 將資訊修改完畢, 然後將源⽂件刪除, 將新⽂件的名字改成老檔案的名字
弊端: 一次將所有內容進⾏讀取. 記憶體溢位. 解決⽅案: ⼀⾏⼀行的讀取和操作
Python基礎 檔案操作
使用 open 能夠開啟乙個檔案,open 的第乙個引數為檔名和路徑 my file.txt 第二個引數為將要以什麼方式開啟它,比如w為可寫方式.如果計算機沒有找到 my file.txt 這個檔案,w 方式能夠建立乙個新的檔案,並命名為 my file.txt 例項 text tthis is m...
python 基礎 檔案操作
開啟 在python,使用open函式,可以開啟乙個已經存在的檔案,或者建立乙個新檔案 open 檔名,訪問模式 示例如下 f open test.txt w 說明 訪問模式說明r 以唯讀方式開啟檔案。檔案的指標將會放在檔案的開頭。這是預設模式。w開啟乙個檔案只用於寫入。如果該檔案已存在則將其覆蓋。...
python 基礎 檔案操作
開啟 在python,使用open函式,可以開啟乙個已經存在的檔案,或者建立乙個新檔案 open 檔名,訪問模式 示例如下 f open test.txt w 說明 訪問模式說明r 以唯讀方式開啟檔案。檔案的指標將會放在檔案的開頭。這是預設模式。w開啟乙個檔案只用於寫入。如果該檔案已存在則將其覆蓋。...