18.文件操作(2)----打開文件和關閉文件

1.打開文件

1.open()

open()常用參數:

參數名稱 意義
file 位置參數,要打開文件的路徑
mode 關鍵字參數,打開文件的模式
encoding 關鍵字參數,編碼格式

參數詳解:

1.file
file代表我們要打開的文件,可以使用絕對路徑或相對路徑

(1)當我們要打開的文件與程序不在同一個級文件夾下,則使用絕對路徑:
在這裏插入圖片描述
在test.py文件中打開a\a.txt,代碼如下(僞代碼):

open(r"D:\a\a.txt")open("D:/a/a.txt")

注意事項:
	1.爲了避免錯誤,在路徑前加r,因爲\在python中還有轉義的意思,r是rawstring,會顯示原生的字符串
	2.將\換爲/,系統默認\表示文件目錄,但在此我們也可以用/
	3.相對路徑是文件完整的路徑,相對路徑定位文件準確,但可能前綴過長讓代碼看起來冗餘

(2)當我們要打開的文件與程序所在文件在同一級文件夾下,使用相對路徑
在這裏插入圖片描述
在test.py中打開b\a.txt和b\c\e.txt,代碼如下(僞代碼):

open("a.txt")
open(r"c\e.txt")

注意事項:
	1.要打開的文件一定與程序在同一級文件夾下,如果不在就會報錯

2.mode
打開文件有兩種模式,t(文本模式)和b(字節),必須要和操作文件模式連用,默認模式是rt

t模式的特點:

  1. 讀寫都是以str爲單位
  2. 讀寫的都是文本文件,操作文本文件時很方便
  3. 要指定encoding

b模式的特點

  1. 讀寫都是以bytes爲單位
  2. 可以讀寫任何文件,更通用
  3. 不指定encoding

3.encoding
文件中的數據本質上是存在硬盤,在硬盤中是某種編碼格式的二進制數據,那我們讀出來的也是二進制數據,所以要進行解碼,指定了encoding後,python就會自動幫我們按照encoding參數進行解碼,如果不指定,就會按照我們操作系統的編碼類型進行解碼。

看一個錯誤示範,代碼如下:

f = open("a.txt",mode="rt",)
ret = f.read()
print(ret)

運行結果:
在這裏插入圖片描述
我的電腦是windows操作系統,默認編碼格式是gbk,而這個a.txt文件的編碼格式設置成utf-8,這樣的話肯定無法解碼
我們加上encoding,再試一試:

f = open("a.txt",mode="rt",encoding="UTF-8")
ret = f.read()
pritn(ret)

運行結果如下:
在這裏插入圖片描述
注意:encoding一定要和文件的編碼格式相同

2.關閉文件

操作系統能打開的文件個數是一定的的,而且如果只是打開文件操作完後卻不關閉會白白浪費我們的內存,所以一定要記得關閉文件。

1.手動關閉

f = open("a.txt",mode="rt",encoding="UTF-8")
ret = f.read()
pritn(ret)
f.close()										#關閉文件

2.with(自動關閉)

with更加人性化一點,with語句結束後會幫我們自動關閉文件

with open("a.txt",mode="rt",encoding="UTF-8") as f:				
	ret = f.read()
	pritn(ret)

來驗證一下with的自動關閉:

with open("a.txt",mode="rt",encoding="UTF-8") as f:				
	ret = f.read()
	pritn(ret)
f.read()

結果如下:
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章