回顧復(fù)習(xí)
我們上一期在Python 文件關(guān)閉流淺析里學(xué)習(xí)了文件的關(guān)閉,本期我們來詳細(xì)學(xué)習(xí)文件的操作。
在學(xué)習(xí)之前,我們?nèi)匀换仡櫼幌翽ython文件操作三步驟:
- 創(chuàng)建文件對象,打開文件
- 對文件進(jìn)行讀寫等操作
- 文件操作完后,關(guān)閉文件
同時(shí),我們也在Python 文件管理淺析中,知道文件分為文本文件和二進(jìn)制文件
本期,我們來學(xué)習(xí)好玩的,讀取、添加、刪除等文件里面的內(nèi)容。
我們在學(xué)習(xí)之前,再來回顧一下,打開文件模式。
| 模式 | 作用 |
|---|---|
| r | 打開的文件,默認(rèn)只讀權(quán)限 |
| r+ | 打開的文件后,從開頭開始讀取 |
| rb | 打開的二進(jìn)制文件只具有只讀權(quán)限 |
| rb+ | 打開的二進(jìn)制文件具有讀寫權(quán)限 |
| w | 打開的文件具有只讀權(quán)限(會(huì)清空文件原有內(nèi)容) |
| w+ | 打開的文件具有讀寫權(quán)限(會(huì)清空文件原有內(nèi)容) |
| wb | 打開的二進(jìn)制文件只具有只寫權(quán)限 |
| wb+ | 打開的二進(jìn)制文件具有讀寫權(quán)限 |
| a | 打開的文件并在原有內(nèi)容之后追加新內(nèi)容 |
| a+ | 打開的文件在原有內(nèi)容之后追加新內(nèi)容,且具有讀寫權(quán)限 |
| ab | 打開的二進(jìn)制文件在原有內(nèi)容之后追加新內(nèi)容 |
| ab+ | 打開的二進(jìn)制文件在原有內(nèi)容之后追加新內(nèi)容,且具有讀寫權(quán)限 |
學(xué)習(xí)了打開文件模式,我們調(diào)用open()函數(shù)方法就可以打開我們文件,然后進(jìn)行接下來的操作啦
注意:我們調(diào)用了open函數(shù)打開文件,對文件進(jìn)行操作完成后,我們要養(yǎng)成好習(xí)慣關(guān)閉文件哈
哪我們今天開啟,正式的學(xué)習(xí)吧
1. 文本文件讀寫
我們在電腦目錄下創(chuàng)建a.txt內(nèi)容為
1.1 文本文件讀取
打開文件模式具有讀的有r,r+,w+,a+
文件的讀取一般適用三個(gè)方法:
-
read([size])
- 從文件中讀取size個(gè)字符,并作為結(jié)果返回,如果沒有size參數(shù),則讀取整個(gè)文件。
- 讀取到文件末尾,會(huì)返回空字符串
with open("a.txt") as f:
f.read(3)
-
readline()
讀取一行內(nèi)容作為結(jié)果返回,讀取到的文件末尾,會(huì)返回空字符串
f = open("a.txt")
#讀取一行數(shù)據(jù)
str = f.readline()
print(str)
f.close()
-
readlines()
文本文件中,每一行作為一個(gè)字符串存入列表中,返回該列表
f = open("a.txt",'rb')
str = f.readlines()
print(str)
f.close()
1.2 文本文件寫入
我們在對文本文件寫入的時(shí)候,打開文件具有寫入模式的有 w,a,w+,a+ 四種模式
文本文件的寫入一般有兩個(gè)方法:
-
write()
向文件里寫入指定內(nèi)容
我們寫入操作,打開文件模式a的話,是在文件內(nèi)容后面追加新的寫入內(nèi)容
f = open("a.txt", 'a')
f.write("\n寫入一行新數(shù)據(jù)")
f.close()
打開文件模式是w的話,是會(huì)先清空原有內(nèi)容,再寫入新的內(nèi)容
f = open("a.txt", 'w')
f.write("寫入第二行行新數(shù)據(jù)")
f.close()
-
writelines()
可以實(shí)現(xiàn)將字符串列表寫入文件中
我們來看一個(gè)writelines()方法栗子
f = open('a.txt', 'r')
n = open('b.txt','w+') #b.txt文件是空的
n.writelines(f.readlines())
n.close()
f.close()
注意:寫入函數(shù)只有 write() 和 writelines() 函數(shù),而沒有名為 writeline 的函數(shù)。
2. 二進(jìn)制文件讀寫
二進(jìn)制文件的處理流程和文本文件流程一致。
唯一的區(qū)別就是,打開二進(jìn)制文件要加入b模式
主要步驟如下:
- 打開二進(jìn)制文件例如:open("XX.jpg","rb")
- 創(chuàng)建文件對象
- 進(jìn)行write、read操作
- 關(guān)閉二進(jìn)制文件
我們來實(shí)現(xiàn)一個(gè)拷貝一張圖片操作,來練習(xí)二進(jìn)制文件讀寫操作
with open("BQ.jpg","rb") as f:
with open("BQ_copy.jpg","wb") as w:
for line in f.readlines():
w.write(line)
print("copy end")
總結(jié)
本期,我們詳細(xì)學(xué)習(xí)和實(shí)操,文件讀取和寫入操作。在操作文件前打開文件的模式及區(qū)別。
在后續(xù)更好的對文件進(jìn)行操作,打下夯實(shí)的基礎(chǔ)。
以上是本期內(nèi)容,歡迎大佬們指導(dǎo)點(diǎn)贊關(guān)注,下期見~