6.1Python檔案的操作(一)

夢並不遙遠發表於2019-02-07

目錄

前言

要處理資料,就要操作檔案,今天我們來學習一下最基本的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

01.png

==2.只寫==

(1)說明

以只寫的方式開啟檔案,清空之前的內容,指標再開頭處。

若檔案不存在,則會建立一個新的檔案。

若操作讀操作會報錯。

(2)原始碼

# 1.開啟檔案
f = open("b.txt", "w")

# 2.讀寫操作
f.write("abcdefg")

# 3.關閉檔案
f.close()

(3)輸出效果

02.png

==3.追加==

(1)說明

與只寫的方式一樣,唯一的取別在於,再進行寫操作的時候,指標是在結尾處,在後面追加內容。

(2)原始碼

# 1.開啟檔案
f = open("c.txt", "a")

# 2.讀寫操作
f.write("456")

# 3.關閉檔案
f.close()

(3)輸出效果

原本從 c.txt 只有abcdefg 的內容。

03.png

(二)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)原圖片

from.png

2)擷取後的圖片

to1.png

(三)+ 附加組合

在之前單一功能的基礎上,新增另一個功能。例如寫可以新增讀,讀可以新增寫。

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)輸出效果

05.png

2)追加後的檔案

04.png

==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)輸出效果

06.png

==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

07.png

作者:Mark

日期:2019/02/07 週四