目錄
目錄
前言
要處理資料,就要操作檔案,今天我們來學習一下最基本的python操作檔案的方式。
(一)基礎型別
r | 只讀 |
---|---|
w | 只寫 |
a | 追加 |
==1.只讀==
(1)說明
開啟檔案時,不寫讀寫模式,只讀時預設值。檔案的指標會放在開頭,也就是從頭讀起,
當檔案不存在時,會報錯。
若操作寫操作,會報錯。
(2)原始碼
# 1.開啟檔案
f = open("a.txt", "r")
# 2.讀寫操作
content = f.read()
print(content)
# 3.關閉檔案
f.close()
(3)輸出效果
a.txt檔案只寫有:123def
==2.只寫==
(1)說明
以只寫的方式開啟檔案,清空之前的內容,指標再開頭處。
若檔案不存在,則會建立一個新的檔案。
若操作讀操作會報錯。
(2)原始碼
# 1.開啟檔案
f = open("b.txt", "w")
# 2.讀寫操作
f.write("abcdefg")
# 3.關閉檔案
f.close()
(3)輸出效果
==3.追加==
(1)說明
與只寫的方式一樣,唯一的取別在於,再進行寫操作的時候,指標是在結尾處,在後面追加內容。
(2)原始碼
# 1.開啟檔案
f = open("c.txt", "a")
# 2.讀寫操作
f.write("456")
# 3.關閉檔案
f.close()
(3)輸出效果
原本從 c.txt 只有abcdefg 的內容。
(二)b二進位制組合
操作二進位制檔案,例如圖片,視訊,音訊等
rb | 只讀二進位制檔案 |
---|---|
wb | 只寫二進位制檔案 |
ab | 追加二進位制檔案 |
==1.讀寫二進位制檔案==
(1)說明
我們把一張圖片的一半二進位制資料寫入另一張圖片會怎麼樣?
請看下面操作
(2)原始碼
# 1.得到資料來源
# 1.1 開啟檔案
from_file = open("from.png", "rb")
# 1.2 讀取檔案
from_content = from_file.read()
# 1.3 關閉檔案
from_file.close()
# 2.寫入到新的檔案
# 2.1開啟檔案
to_file = open("to.png", "wb")
# 2.2 寫入檔案
to_content = from_content[0:len(from_content)//2]
to_file.write(to_content)
# 2.3關閉檔案
to_file.close()
(3)輸出效果
1)原圖片
2)擷取後的圖片
(三)+ 附加組合
在之前單一功能的基礎上,新增另一個功能。例如寫可以新增讀,讀可以新增寫。
r+ | 讀附加 |
---|---|
w+ | 寫附加 |
a+ | 追加附加 |
rb+ | 讀二進位制附加 |
wb+ | 寫二進位制附加 |
ab+ | 追加二進位制附加 |
==1.讀附加==
(1)說明
與只讀的功能差不多,不過新增了寫的功能,這個寫的功能與只寫的功能有區別。
這個寫只根據指標的位置來寫,即使指標在開頭,也只是部分的覆蓋。
(2)原始碼
# 1.開啟檔案
f = open("a.txt", "r+")
# 2.讀寫操作
# 2.1讀
content = f.read()
print(content)
# 2.2寫
f.write("123")
# 3.關閉檔案
f.close()
(3)輸出效果
1)輸出效果
2)追加後的檔案
==2.寫附加==
(1)說明
寫附加,是新增了讀的功能,不過沒有指定位置時u,讀出來的都是空的。
(2)原始碼
# 1.開啟檔案
f = open("d.txt", "w+")
# 2.讀寫操作
# 2.1讀
content = f.read()
print(content)
# 2.2寫
f.write("123456")
# 2.3再讀
content = f.read()
print(content)
# 3.關閉檔案
f.close()
(3)輸出效果
==3.追加附加==
(1)說明
其附加也是新增了讀的功能,不過,在沒有指定位置的時候,讀出來的都是空的。
(2)原始碼
# 1.開啟檔案
f = open("e.txt", "a+")
# 2.讀寫操作
# 2.1讀
content = f.read()
print(content)
# 2.2寫
f.write("abc")
# 2.3再讀
content = f.read()
print(content)
# 3.關閉檔案
f.close()
(3)輸出效果
e.txt 追加前是:123456
e.txt 追加後是: 123456abc