17 - 文件讀寫

返回主頁

📄目錄

1 基礎操作

文件就是存儲在某種長期儲存設備上的一段數據,分為文本文件和二進制文件(如圖片)

1.1 文件操作

三步驟

  1. 打開文件

  2. 讀寫文件(可以不讀寫)

  3. 關閉文件

1.2 文件對象的方法

  1. open():創建一個file對象,默認以檢視模式打開

  2. read(n):n表示從文件中讀取數據的長度,沒有傳n值就默認一次性讀取文件所有內容

  3. write():將指定內容寫入文件

  4. close():關閉文件

1.3 屬性

  1. 文件名.name:返回要打開的文件的文件名,可以包含文件的具體路徑

  2. 文件名.mode:返回文件的訪問模式

  3. 文件名.closed:檢測文件是否關閉,關閉就返回True

1.4 操作範例

python-logo

在本文件夾(/PyPractice)建立一個test.txt文件,包含以下內容:

輸出結果:

2 文件讀寫

2.1 read(n)

n表示從文件中讀取數據的長度,沒有傳n值或者傳的是負數就默認一次性讀取文件所有內容

python-logo

沿用test.txt

輸出結果:

2.2 readline()

一次讀取一行內容,方法執行完,會把文件指針移到下一行,準備再次讀取

python-logo

輸出結果:

2.2.1 for循環讀取(不用readline()

python-logo

輸出結果:

2.3 readlines()

按照行的方式把文件內容一次件讀取,返回一個列表,每一行的數據就是列表中的一個元素

python-logo

輸出結果:

2.2.1 for循環讀取

python-logo

輸出結果:

2.4 訪問模式

模式可做操作若文件不存在是否覆蓋
r只能讀報錯
r+可讀可寫報錯
w只能寫創建
w+可讀可寫創建
a只能寫創建否,追加寫
a+可讀可寫創建否,追加寫

2.4.1 r:只讀模式(默認)

❗ 文件必須存在,不存在就會報錯

python-logo

⚠️⚠️ r模式只可讀、不可寫

輸出結果:

2.4.2 w:只寫模式

文件存在就會先清空內容,再寫入添加內容;文件不存在就創建新文件

python-logo

test01.txt顯示:

2.4.3 +:可以同時讀寫某個文件

使用+會影響文件的讀寫效率,開發過程中更多時候會以只讀、只寫的方式來操作文件

python-logo

test01.txt顯示:

2.4.4 a:追加模式

不存在就創建新文件進行寫入,存在則在原有內容的基礎上添加新內容

python-logo

test01.txt顯示:

2.5 文件定位操作

💡 重要概念:文件指針

👉🏻 標記從哪一個位置開始讀取數據

2.5.1 寫入後讀取方式一:更改訪問模式(取巧)

python-logo

輸出結果:

2.5.2 文件定位操作:tell()seek()

  1. tell():顯示文件內當前位置,即文件指針當前位置

  2. seek(offset, whence):移動文件讀取指針到指定位置

    1. offset:偏移量,表示要移動的字節數

    2. whence:超始位置,表示移動字節的參考位置

      1. 默認值是0,表示文件開頭作為參考位置

      2. 1代表當前位置作為參考位置

      3. 2代表將文件結尾位為參考位置

例子:seek(0,0)就會把文件指針移到文件開頭

python-logo

或者:

輸出結果:

3 編碼格式

3.1 with open

作用:代碼執行完,系統會自動調用f.close()方法,可以省略文件關閉步驟

python-logo

輸出結果:

3.2 encoding

python-logo

輸出結果:

3.3 案例:圖片複制 rb&wb

python-logo

輸出結果(內容太長,不顯示)

4 目錄常用操作

python-logo

先導入模塊再進行本節其他操作

4.1 文件重命名 os.rename(舊名字, 新名字)

python-logo

4.2 刪除文件 os.remove()

python-logo

4.3 創建文件夾 os.mkdir()

python-logo

4.4 刪除文件夾 os.rmdir()

python-logo

4.5 獲取當前目錄 os.getcwd()

python-logo

輸出結果(根據目錄位置變化):

4.6 獲取目錄列表 os.listdir()

python-logo

輸出結果:

導航連結:

目的地超連結
首頁返回主頁
Python學習Python學習
上一篇16 - 單例模式&魔法方法
下一篇18 - 迭代器&生成器