人妖在线一区,国产日韩欧美一区二区综合在线,国产啪精品视频网站免费,欧美内射深插日本少妇

新聞動(dòng)態(tài)

Python文件的操作處理詳解

發(fā)布日期:2021-12-18 02:42 | 文章來源:源碼之家

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è)文件對(duì)象。上述格式中主要參數(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) #讀出指定長(zhǎng)度字符

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對(duì)象的介紹

File對(duì)象中的屬性信息如下表所示。

File對(duì)象中的屬性信息

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

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

File對(duì)象中的內(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)容!

版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。

相關(guān)文章

實(shí)時(shí)開通

自選配置、實(shí)時(shí)開通

免備案

全球線路精選!

全天候客戶服務(wù)

7x24全年不間斷在線

專屬顧問服務(wù)

1對(duì)1客戶咨詢顧問

在線
客服

在線客服:7*24小時(shí)在線

客服
熱線

400-630-3752
7*24小時(shí)客服服務(wù)熱線

關(guān)注
微信

關(guān)注官方微信
頂部