欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python文件的操作處理詳解

 更新時(shí)間:2021年10月28日 11:55:43   作者:boy-s6  
今天這篇文章給大家介紹Python文件的操作處理,文章內(nèi)容介紹的很詳細(xì),有需要的可以參考借鑒,希望能夠給你帶來幫助

1.使用open()函數(shù)打開文件夾

在讀取一個(gè)文件的內(nèi)容之前,需要先打開這個(gè)文件。在Python程序中可以通過內(nèi)置函數(shù)open()來打開一個(gè)文件程序中,,并用相關(guān)的方法讀或?qū)懳募募械膬?nèi)容以供程序的處理和使用,同時(shí)可以將文件看作Python中的一種數(shù)據(jù)類型。是用函數(shù)open()的語法格式如下。

open(filename, mode='r', buffering=None, encoding=None, errors=None,
     newline=None, closefd=True, opener=None)

open: 打開
      以什么樣的方式打開, 讀或?qū)?read, write
          以讀的方式:文本的方式, 二進(jìn)制的方式
          以寫的方式:文本的方式,二進(jìn)制的方式
      寫文件的時(shí)候:覆蓋,追加(兩種方式)

當(dāng)使用上述函數(shù)open()打開一個(gè)文件后, 就會(huì)放回一個(gè)文件對象。上述格式中主要參數(shù)的具體說明如下所示:

  • filename:表示要打開的文件名。(路徑+文件名)
  • mode:模式。
  • buffering:可選參數(shù),緩沖區(qū)大小
  • encoding:文件編碼類型。
  •                 文本文件才有可能需要編碼,二進(jìn)制文件不需要指定編碼 否則會(huì)報(bào)出異常
  • errors:編碼錯(cuò)誤處理方式。
  • newline:控制通用換行符模式的行為。
  • closefd:控制在關(guān)閉文件時(shí)是否徹底關(guān)閉文件。

上述格式中,參數(shù)“mode”表示文件打開模式。在Python程序中,常用的文件打開模式如下表所示。

文件打開模式
模式 描述
r 以讀的方式打開文件(默認(rèn))
rb 以二進(jìn)制的格式打開一個(gè)文件只用于讀。文件指針將會(huì)放在文件開頭。
r+ 打開一個(gè)文件用于讀寫。文件指針將會(huì)放在文件開頭。
rb+ 以二進(jìn)制的格式打開一個(gè)文件用于讀寫。文件指針將會(huì)放在文件開頭。
w 以寫的方式打開,先清空文件再寫(覆蓋),如果該文件不存在,創(chuàng)建新文件
wb 以二進(jìn)制的格式打開文件并寫入,先清空文件再寫(覆蓋),如果該文件不存在,創(chuàng)建新文件。
w+ 以二進(jìn)制的格式打開一個(gè)文件用于讀寫。先清空文件再寫(覆蓋),如果該文件不存在,創(chuàng)建新文件。
wb+ 以二進(jìn)制的格式打開文件并讀寫,先清空文件再寫(覆蓋),如果該文件不存在,創(chuàng)建新文件。
a 以追加的方式去寫
ab 以二進(jìn)制的格式打開一個(gè)文件夾用于追加。如果該文件存在,文件指針將會(huì)放在文件的結(jié)尾。也就是說,新的內(nèi)容將會(huì)寫入到已有的內(nèi)容之后。如果該文件不存在,創(chuàng)建新文件。
a+ 打開一個(gè)文件用于讀寫。如果該文件存在,文件指針將會(huì)放在文件的結(jié)尾。如果該文件不存在,創(chuàng)建新文件。
ab+ 以二進(jìn)制格式打開一個(gè)文件用于追加。如果該文件存在,文件指針將會(huì)放在文件的結(jié)尾。如果該文件不存在,創(chuàng)建新文件。

下圖很好的總結(jié)了這幾種模式:

#默認(rèn)以文本讀的方式打開
file_obj = open("file.txt", encoding="utf-8")
data = file_obj.read()
print(data)
file_obj.close()
 
file_obj = open("file.txt", "rt", encoding="utf-8")
data = file_obj.read()
print(data)
file_obj.close()
 
file_obj = open("file.txt", "w", encoding="utf-8")
data = file_obj.write("11111111111111111")
print(data)
file_obj.close()
 
 
file_obj = open("file2.txt", "w", encoding="utf-8")
data = file_obj.write("11111111111111111")
print(data)
file_obj.close()
 
file_obj = open("file2.txt", "a", encoding="utf-8")
data = file_obj.write("2222222222222")
print(data)
file_obj.close()
 
file_obj = open("file3.txt", "a+", encoding="utf-8")
file_obj.write("33333333333333333333333333")
file_obj.close()
 
file_obj = open("file.txt", encoding="utf-8")
data = file_obj.read()
file_obj.close()

1.1.2二進(jìn)制的方式(打開):圖片,音頻,視頻或者其他的非文本的文件。

#打開”IO.png“文件,并以二進(jìn)制的方式讀出,  b不能單獨(dú)使用(b前的r不能省略)
file_obj = open("IO.png", "rb")
data = file_obj.read()
print(data)
#關(guān)閉文件
file_obj.close()
#以二進(jìn)制的方式寫入文件”psb_copy.jpg“
file_obj = open("psb_copy.jpg", "wb")
file_obj.write(data)
#關(guān)閉文件
file_obj.close()

注意:“IO.png”文件中,以存入了一張照片。

2.文件的操作

以文本方式寫入的文件, 無需指定編碼 以二進(jìn)制方式寫入文件,寫入的內(nèi)容要 求為bytes,所以通過str.encode('utf-8')來返回 bytes

1.2.1 文件寫操作:

write()方法 f.write("hello world") #向目標(biāo)文本文 件寫入一行字符串                            

f.write("hello world".encode("utf-8")) # 向目標(biāo)二進(jìn)制文件寫入一行字符串

1.2.2文件寫操作:

writelines()方法寫入 文件的字符串序列。

seq = ["hello world 1\n", "nihao wohao 2"] f.writelines( seq ) 7/15

1.2.3 文件讀操作:

read()方法從文件讀取指定的字節(jié)數(shù),如果未給定或?yàn)樨?fù)則讀取所有。

ret = f.read() #默認(rèn)全部讀出 ret = f.read(5) #讀出指定長度字符

1.2.4 文件讀操作:

readline()方法可以讀 出一行數(shù)據(jù) ret = f.readline() #讀取一行

注意:有個(gè)很像的 readlines()方法 ret = f.readlines() #返回的是一個(gè)列 表,且返回的是你讀取的字符所在行的整個(gè)內(nèi)容,但是當(dāng)數(shù)據(jù)較大時(shí),這樣的用法會(huì)很占 用內(nèi)存。

       

3.使用File操作文件        

3.1File對象的介紹

File對象中的屬性信息如下表所示。

File對象中的屬性信息

屬性 描述
file.closed 如果文件已關(guān)閉返回True;否則返回False
file.mode 返回打開文件的訪問模式
file.name 返回文件的名稱

在Python程序中,對象File時(shí)通過內(nèi)置函數(shù)實(shí)現(xiàn)對文件操作的,其中常用的內(nèi)置函數(shù)如下。     

File對象中的內(nèi)置函數(shù)

函數(shù) 功能
file.close() 關(guān)閉文件,關(guān)閉文件后不能再進(jìn)行讀寫操作
file.flush() 刷新文件內(nèi)部緩沖區(qū),直接把內(nèi)部緩沖區(qū)的數(shù)據(jù)寫入文件,而不是被動(dòng)的等待輸出緩沖區(qū)寫入。
file.fileno() 返回一個(gè)整形的文件描述,可以用在如os模塊的read方法等一些底層操作上
file.isatty() 如果文件連接到一個(gè)終端設(shè)備返回True,否則返回False
file.next() 返回文件下一行
file.read([size]) 從文件讀取指定的字節(jié)數(shù),如果為給定或者為負(fù)值,則讀取所有字節(jié)
file.readline([size]) 讀取整行,包括“\n”
file.readlines([hint]) 讀取所有行并返回列表,如給定hint>,返回總合大于約為hint字節(jié)的行,實(shí)際讀取值可能比hine大,因?yàn)樾枰畛渚彌_區(qū)
file.seek(offsrt[, whence]) 設(shè)置文件當(dāng)前位置
file.tell 返回文件當(dāng)前位置
file.truncate([size]) 截取文件,截取的字節(jié)通過size指定,默認(rèn)為當(dāng)前文件的位置
file.write(str) 將字符串寫入文件,沒有返回值
file.writeline(lines) 向文件寫入一個(gè)序列字符串列表,如果需要換行,則要自己加入換行符。

總結(jié)

本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!

相關(guān)文章

  • Python爬蟲網(wǎng)頁元素定位術(shù)

    Python爬蟲網(wǎng)頁元素定位術(shù)

    這篇文章主要介紹了Python爬蟲網(wǎng)頁元素定位術(shù),文章通過Beautiful?Soup模塊展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-05-05
  • python根據(jù)出生日期返回年齡的方法

    python根據(jù)出生日期返回年齡的方法

    這篇文章主要介紹了python根據(jù)出生日期返回年齡的方法,實(shí)例分析了Python時(shí)間操作的技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-03-03
  • Python3.9新特性詳解

    Python3.9新特性詳解

    這篇文章主要介紹了Python3.9新特性詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • python算法練習(xí)之抓交通肇事犯

    python算法練習(xí)之抓交通肇事犯

    這篇文章主要該大家分享python算法抓交通肇事犯得練習(xí),文章主要通過描述抓交通肇事犯得問題然后確定程序框架將結(jié)果運(yùn)算出來,下面來看詳細(xì)內(nèi)容吧,需要的朋友可以參考一下喲
    2021-10-10
  • OpenCV機(jī)器學(xué)習(xí)MeanShift算法筆記分享

    OpenCV機(jī)器學(xué)習(xí)MeanShift算法筆記分享

    這篇文章主要介紹了OpenCV機(jī)器學(xué)習(xí)MeanShift算法筆記分享,有需要的朋友可以借鑒參考下,希望可以對各位讀者的OpenCV算法學(xué)習(xí)能夠有所幫助
    2021-09-09
  • 利用keras加載訓(xùn)練好的.H5文件,并實(shí)現(xiàn)預(yù)測圖片

    利用keras加載訓(xùn)練好的.H5文件,并實(shí)現(xiàn)預(yù)測圖片

    今天小編就為大家分享一篇利用keras加載訓(xùn)練好的.H5文件,并實(shí)現(xiàn)預(yù)測圖片,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • Selenium Webdriver元素定位的八種常用方式(小結(jié))

    Selenium Webdriver元素定位的八種常用方式(小結(jié))

    這篇文章主要介紹了Selenium Webdriver元素定位的八種常用方式(小結(jié)),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • python判斷文件夾內(nèi)是否存在指定后綴文件的實(shí)例

    python判斷文件夾內(nèi)是否存在指定后綴文件的實(shí)例

    今天小編就為大家分享一篇python判斷文件夾內(nèi)是否存在指定后綴文件的實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-06-06
  • python3?字符串str和bytes相互轉(zhuǎn)換

    python3?字符串str和bytes相互轉(zhuǎn)換

    這篇文章主要介紹了python3?字符串str和bytes相互轉(zhuǎn)換,在文件傳輸過程中,通常使用bytes格式的數(shù)據(jù)流,而代碼中通常用str類型,因此str和bytes的相互轉(zhuǎn)換就尤為重要,下文詳細(xì)介紹需要的小伙伴可以參考一下
    2022-03-03
  • 使用Python發(fā)送各種形式的郵件的方法匯總

    使用Python發(fā)送各種形式的郵件的方法匯總

    這篇文章主要介紹了使用Python發(fā)送各種形式的郵件的方法匯總,包括HTML形式的或者帶圖片以及帶附件的郵件等等,需要的朋友可以參考下
    2015-11-11

最新評論