网络编程(part3)--文件读写之二进制文件读写/with操作
鄙人學(xué)習(xí)筆記
文章目錄
- 二進(jìn)制文件讀寫
- 舉個(gè)例子1(以二進(jìn)制方式打開并讀取txt文件)
- 舉個(gè)例子2(以二進(jìn)制方式打開并讀取圖片)
- 舉個(gè)例子3(二進(jìn)制文件打開并寫入操作)
- 關(guān)閉文件
- with操作
- with語句的語法格式
- 舉個(gè)例子
二進(jìn)制文件讀寫
file_object = open(file_name, access_mode='r', buffering=-1) 功能:打開一個(gè)文件,返回一個(gè)文件對(duì)象。 參數(shù):file_name————文件名;access_mode————打開文件的方式,如果不寫默認(rèn)為‘r’ 文件模式 操作rb 以二進(jìn)制讀模式打開 同rwb 以二進(jìn)制寫模式打開 同wab 以二進(jìn)制追加模式打開 同arb+ 以二進(jìn)制讀寫模式打開 同r+wb+ 以二進(jìn)制讀寫模式打開 同w+ab+ 以二進(jìn)制讀寫模式打開 同a+舉個(gè)例子1(以二進(jìn)制方式打開并讀取txt文件)
首先看一下要讀取的文件數(shù)據(jù):
讀取:
結(jié)果:
由結(jié)果可知,我們得到了一堆字節(jié)串。
在網(wǎng)絡(luò)傳輸?shù)倪^程中,要求不能傳輸字符串,只能傳輸字節(jié)串,則可以用這種方式進(jìn)行去讀取。
我們可以用decode()將字節(jié)串轉(zhuǎn)換成字符串:
結(jié)果:
舉個(gè)例子2(以二進(jìn)制方式打開并讀取圖片)
我們先看一下我們的圖片:
我們以r的形式打開文件:
結(jié)果:
會(huì)報(bào)錯(cuò)!所以,我們?nèi)绻蜷_二進(jìn)制編碼的文件(視頻、音頻),必須要以二進(jìn)制的打開方式(字節(jié)串的打開方式)。
備注:二進(jìn)制的方式(字節(jié)串的打開方式)可以打開所有文件。
我們以rb的形式打開:
部分結(jié)果:
舉個(gè)例子3(二進(jìn)制文件打開并寫入操作)
寫入:
備注:我們以wb的形式打開文件,則必須要以字節(jié)串的形式寫入,故我們要在字符串【hello world】前加【b】,將其轉(zhuǎn)化為字節(jié)串。
結(jié)果:
關(guān)閉文件
file_object.close()打開一個(gè)文件后我們就可以通過文件對(duì)象對(duì)文件進(jìn)行操作了,當(dāng)操作結(jié)束后使用close()關(guān)閉這個(gè)對(duì)象可以防止一些誤操作,也可以節(jié)省資源。
with操作
python中的with語句使用于對(duì)資源進(jìn)行訪問的場(chǎng)合,保證不管處理過程中是否發(fā)生錯(cuò)誤或者異常都會(huì)執(zhí)行規(guī)定的“清理”操作,釋放被訪問的資源。比如,文件讀寫后自動(dòng)關(guān)閉、線程中鎖的自動(dòng)獲取和釋放等。
with語句的語法格式
with context_expression [as target(s)]:with-body備注:context_expression為條件語句,as target(s) 表示將條件語句生成一個(gè)target(s)對(duì)象,with-body為語句塊。在執(zhí)行完語句塊后,生成的對(duì)象會(huì)被自動(dòng)清理。
通過with方法可以不用close(),因?yàn)閣ith生成的對(duì)象在語句塊結(jié)束后會(huì)自動(dòng)處理,所以也就不需要close了,但是這個(gè)文件對(duì)象只能在with語句塊內(nèi)使用:
with open('file','r+') as f:f.read()上面這段代碼的意思是,將打開的文件對(duì)象定義為f, 之后用f進(jìn)行讀取操作,當(dāng)語句塊結(jié)束后,會(huì)自動(dòng)清除文件對(duì)象f.
備注:并不是所有對(duì)象都能用with.
舉個(gè)例子
代碼:
結(jié)果:
總結(jié)
以上是生活随笔為你收集整理的网络编程(part3)--文件读写之二进制文件读写/with操作的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 3大理由决定企业 AI 必须“负责”
- 下一篇: 梦幻西游大闹天宫副本怎么通关 大闹天宫副