Python自娛 13 檔案操作

2022-09-20 06:48:14 字數 2668 閱讀 3271

-一.檔案操作

檔案控制代碼:

f = open("檔案絕對路徑或相對路徑", mode="r", encoding="utf-8")

content = f.read() # 這裡進行了乙個utf-8到gbk轉換?

print(content)

f.close()

# 如果檔案隱藏了字尾,則不要新增字尾

# 以什麼編碼方式儲存的檔案,就以什麼編碼方式開啟

# 非文字檔案儲存用bytes

# read()對檔案進行了轉換, b轉換成了str

1.編碼方式 utf-8 gbk

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

# r+會覆蓋當前檔案指標所偶在位置的字元,如原來檔案內容是「hello」,開啟後寫入」hi「,會乾掉he

不移動游標,新內容讀不出來;移動游標新內容能讀出來

在寫之前能讀舊內容

# w+與r+不同,w+在開啟檔案時會將檔案清空

不移動游標,新內容讀不出來;移動游標新內容能讀出來

在寫之前讀不到舊內容,已經被清空

# a+與r+不同,a+只能寫到檔案末尾(無論當前檔案指標在**).r+移動游標後就會覆蓋寫,a+就不會

不移動游標,新內容讀不出來;移動游標新內容能讀出來

在寫之前讀不到就內容,因為游標在最尾

3.操作方式 唯讀 只寫 追加 讀寫 寫讀

4.open直接開啟檔案,如果出現異常,則報錯,close方法無法關閉

5.用with的好處是達到語句末尾時,會自動關閉檔案,即便出現異常.

6.with語句實際上是乙個非常通用的結構,使用上下文管理器.支援__enter__和__exit__方法

7.__enter__方法不接受任何引數,在進入with語句時呼叫,其返回值被賦給關鍵字as後面變數

8.__exit__方法接收三個引數,異常型別,異常物件和異常跟蹤.它在離開方法時被呼叫,如果__exit__返回false,將抑制所有的異常.

9.檔案也可用做上下文管理器.他們的方法__enter__返回檔案物件本身,而方法__exit__關閉檔案

10.with語句作用效果相當於try-except-finally

# 功能詳解

f.read(3) # 讀取前三個字元

f.seek(3) # 移動游標,以位元組為單位.如果文字是中文,不是3倍數會報錯

# seek(0)開頭;seek(0, 2)結尾

f.tell() # 獲取游標的位置,按字元計算

count = f.tell()

f.seek(count-9) # 意思是從獲取的位置的-3開始

f.readlines() # 輸出的是列表,每一行是列表中的乙個元素

f.truncate() # 擷取檔案,擷取幾位括號裡加幾

# 方法2:移動游標,然後f.truncate(),游標後邊都刪除

# 注意,需要用到寫操作,意味著會刪除原始檔內容

writeable() # 是否可寫

readable() # 是否可讀

r # 非文字檔案用rb開啟

f = open("filename", mode="rb")

content = f.read()

f.close()

w對於寫,沒有檔案則建立檔案,有檔案先清除原始檔再寫

f = open("filename", mode="w", encoding="utf-8")

f.write("123")

f.close()

f = open("filename", mode="wb")

f.write("浮點數".encode("utf-8"))

f.close()

f = open("filename", mode="wb", encoding="utf-8")

f.write("123")

f.close() # 這兩種方法結果相同,目前用encoding會報錯

a # a沒有讀功能,讀會報錯,a+能讀

f = open("filename", mode="a", encoding="utf-8")

f.write("123")

f.close() # 追加寫入

r+f = open("filename", mode="r+", encoding="utf-8")

print(f.read())

f.write("123")

print(f.read()) # 新內容不會讀出來

f.close()

f = open("filename", mode = "r+b")

print(f.read())

f.write("123", encode("utf-8"))

with open("filename", mode="r", encoding="utf-8") as obj:

with open("filename1", mode="r", encoding="utf-8") as obj1:

print(obj.read())

# 可以開啟多個檔案

Python學習日記 13 檔案操作

能呼叫方法的一定是物件 poem open 南歌子.txt r encoding utf8 read r 讀模式,read 讀出來,檔案要加字尾名 print poem 讀 f open 南歌子.txt r encoding utf8 讀模式開啟 poem f.read 10 讀方式操作 操作 十個...

python基礎(13) 檔案

檔案的基本方法 可使用函式open,它位於自動匯入的模組io中。1.open函式將檔名作為唯一必不可少的引數,返回乙個可讀取的檔案物件 open a.py a.py mode r encoding cp936 2.如果要寫入檔案,必須通過指定模式來顯式地指出這一點 3.若不存在該檔案,則會產生如下錯...

python13檔案 13 Python 檔案

概述 嚴格講,檔案不屬於資料型別。02操作 1 開啟檔案 1 基本語法 file open 檔名 mode 引數mode模式可選引數,分為 r讀 w寫 a追加 r w a後面可接第二個引數,b標書二進位制,f open data.bin rb 2 完整語法格式為 open file,mode r b...