實(shí)際項(xiàng)目中經(jīng)常遇到讀取二進(jìn)制問題,Python下讀取二進(jìn)制文件一般用Python的文件打開讀寫相關(guān)函數(shù)和struct.
創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比大同網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式大同網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋大同地區(qū)。費(fèi)用合理售后完善,10多年實(shí)體公司更值得信賴。
1。獲取文件名filename,可用對話框,也可以直接手寫
2。打開文件,這里中是打開,像看書一樣,只是打開書,還沒有看里面的內(nèi)容,可以看,也可以不看
binFile=open(filename,'rb')
3。那就看看吧,binFile現(xiàn)在就是書的名字了。這里我們讀入4個字,如果read()將讀入整個文件
context=binFile.read(4)
4。讀入之后問題來了,context包含四個字(4Bytes),但這四個字是加密的(二進(jìn)制)。這時要找翻譯struct.unpack
realContext=struct.unpack(format,context)
5。format的就是加密規(guī)則了,由1,2,4,8個字節(jié)組成其他類型,或者其他類型的數(shù)組。
a,b,c,d=struct.unpack('4c',context)
讀入四個字符
對應(yīng)格式參考
6。打開文件后用完一定要關(guān)閉,和看書一個樣,看完后要合上,不合上后果自己去想
binFile.close()
7。查找內(nèi)容,文件內(nèi)容可以一個一個字的按順序讀出,但如果已經(jīng)知道內(nèi)容在什么位置,可以用查找方式讀出。
binFile.seek(100)
context=binFile.read(4)
讀出100位置后面的4個字,(101,102,103,104)
8。Python還提供也一些高級讀寫功能,如整行讀取等
/python通過解釋器內(nèi)置的open()函數(shù)打開一個文件,并實(shí)現(xiàn)該文件與一個程序變量的關(guān)聯(lián),open()函數(shù)格式如下:
/open()函數(shù)包含有兩個參數(shù):文件名和打開模式.當(dāng)文件與執(zhí)行文件在同一文件夾中,直接輸入文件名,亦可輸入文件的完整路徑.打開模式是指以何種方式打開文件,python提供了7種打開模式.
/r/w/x/a模式與b/t/+模式可以組合使用,比如'rt'為文本只讀.'rb'為二級制只讀.
/文件使用結(jié)束后,需要使用close()關(guān)閉文件使用權(quán)限,釋放內(nèi)存.
/當(dāng)文件使用文本格式打開時,讀寫按照字符串方式,采用計(jì)算機(jī)當(dāng)前編碼或指定編碼.
/當(dāng)文件以二進(jìn)制方式打開時,讀寫按照字節(jié)流方式.
/python本身將文件讀取為一個行序列.
open(filepath) :打開文件
open(filepath,'r') :打開方式,默認(rèn)是讀取
open(filepath).read() :讀取文件中的內(nèi)容
open(filepath).readline() :讀取文件中一行的內(nèi)容
open(filepath).readline()[1] :讀取文件中的內(nèi)容,返回值是列表。
open(filepath).close() :關(guān)閉文件
open(filepath).seek(0) :將光標(biāo)回到首位
with open()函數(shù),不用close()方法,默認(rèn)自動關(guān)閉,所以需要制定一些規(guī)則.
文件內(nèi)建函數(shù)和方法:
open() : 打開文件
read() :輸入
readline() :輸入一行
seek() :文件內(nèi)移動
write() :輸出
close() :關(guān)閉文件