Python 文件讀寫操作

回顧復(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)容為

a.txt
1.1 文本文件讀取

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

文件的讀取一般適用三個(gè)方法:

  1. read([size])

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

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

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

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

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

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

文本文件的寫入一般有兩個(gè)方法:

  1. write()

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

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

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

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

f = open("a.txt", 'w')
f.write("寫入第二行行新數(shù)據(jù)")
f.close()
w模式下write運(yùn)行結(jié)果
  1. 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()
writelines運(yùn)行結(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)制文件

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

總結(jié)

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

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

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

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

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

  • 11.1 Python文件讀寫 open()函數(shù) 文件的讀取與寫入 11.2 Python讀寫文本文件 文件寫入 ...
    大勇任卷舒閱讀 460評論 0 0
  • 用Python讀寫文件(指南) 本文為譯文, 原文鏈接:Reading and Writing Files in ...
    東風(fēng)微鳴閱讀 2,231評論 0 7
  • python中對文件、文件夾(文件操作函數(shù))的操作需要涉及到os模塊和shutil模塊。 得到當(dāng)前工作目錄,即當(dāng)前...
    隔壁小紅館閱讀 616評論 0 3
  • 一. 基本概念 文件 文件作為數(shù)據(jù)存儲(chǔ)的單位,通常用來長期存儲(chǔ)數(shù)據(jù)。文件中的數(shù)據(jù)是以字節(jié)為單位進(jìn)行順序存儲(chǔ)的。操作...
    山藥魚兒閱讀 752評論 0 5
  • 16宿命:用概率思維提高你的勝算 以前的我是風(fēng)險(xiǎn)厭惡者,不喜歡去冒險(xiǎn),但是人生放棄了冒險(xiǎn),也就放棄了無數(shù)的可能。 ...
    yichen大刀閱讀 7,874評論 0 4

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