Python 文件讀寫操作

回顧復(fù)習(xí)

我們上一期在Python 文件關(guān)閉流淺析里學(xué)習(xí)了文件的關(guān)閉,本期我們來詳細(xì)學(xué)習(xí)文件的操作。

在學(xué)習(xí)之前,我們?nèi)匀换仡櫼幌翽ython文件操作三步驟:

  • 創(chuàng)建文件對象,打開文件
  • 對文件進(jìn)行讀寫等操作
  • 文件操作完后,關(guān)閉文件

同時,我們也在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)限(會清空文件原有內(nèi)容)
w+ 打開的文件具有讀寫權(quán)限(會清空文件原有內(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)容為

a.txt
1.1 文本文件讀取

打開文件模式具有讀的有r,r+,w+,a+

文件的讀取一般適用三個方法:

  1. read([size])

    • 從文件中讀取size個字符,并作為結(jié)果返回,如果沒有size參數(shù),則讀取整個文件。
    • 讀取到文件末尾,會返回空字符串
with open("a.txt") as f:
    f.read(3)
    
read結(jié)果
  1. readline()

    讀取一行內(nèi)容作為結(jié)果返回,讀取到的文件末尾,會返回空字符串

f = open("a.txt")
#讀取一行數(shù)據(jù)
str = f.readline()
print(str)
f.close()
ReadLine運行結(jié)果
  1. readlines()

    文本文件中,每一行作為一個字符串存入列表中,返回該列表

f = open("a.txt",'rb')
str = f.readlines()
print(str)
f.close()
readlines運行結(jié)果
1.2 文本文件寫入

我們在對文本文件寫入的時候,打開文件具有寫入模式的有 w,a,w+,a+ 四種模式

文本文件的寫入一般有兩個方法:

  1. write()

    向文件里寫入指定內(nèi)容

我們寫入操作,打開文件模式a的話,是在文件內(nèi)容后面追加新的寫入內(nèi)容

f = open("a.txt", 'a')
f.write("\n寫入一行新數(shù)據(jù)")
f.close()
a模式下write運行結(jié)果

打開文件模式是w的話,是會先清空原有內(nèi)容,再寫入新的內(nèi)容

f = open("a.txt", 'w')
f.write("寫入第二行行新數(shù)據(jù)")
f.close()
w模式下write運行結(jié)果
  1. writelines()

    可以實現(xiàn)將字符串列表寫入文件中

    我們來看一個writelines()方法栗子

f = open('a.txt', 'r')
n = open('b.txt','w+') #b.txt文件是空的
n.writelines(f.readlines())
n.close()
f.close()
writelines運行結(jié)果

注意:寫入函數(shù)只有 write() 和 writelines() 函數(shù),而沒有名為 writeline 的函數(shù)。

2. 二進(jìn)制文件讀寫

二進(jìn)制文件的處理流程和文本文件流程一致。

唯一的區(qū)別就是,打開二進(jìn)制文件要加入b模式

主要步驟如下:

  1. 打開二進(jìn)制文件例如:open("XX.jpg","rb")
  2. 創(chuàng)建文件對象
  3. 進(jìn)行write、read操作
  4. 關(guān)閉二進(jìn)制文件

我們來實現(xiàn)一個拷貝一張圖片操作,來練習(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")
二進(jìn)制文件讀寫操作運行結(jié)果
二進(jìn)制文件讀寫之后結(jié)果2
拷貝一張可愛的圖片

總結(jié)

本期,我們詳細(xì)學(xué)習(xí)和實操,文件讀取和寫入操作。在操作文件前打開文件的模式及區(qū)別。

在后續(xù)更好的對文件進(jìn)行操作,打下夯實的基礎(chǔ)。

以上是本期內(nèi)容,歡迎大佬們指導(dǎo)點贊關(guān)注,下期見~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容