實(shí)際項(xiàng)目中經(jīng)常遇到讀取二進(jìn)制問(wèn)題洛口,Python下讀取二進(jìn)制文件一般用Python的文件打開讀寫相關(guān)函數(shù)和struct.
1旧烧。獲取文件名filename,可用對(duì)話框,也可以直接手寫
2唐责。打開文件,這里中是打開懈凹,像看書一樣,只是打開書,還沒有看里面的內(nèi)容侧但,可以看矢空,也可以不看
binFile=open(filename,'rb')
3。那就看看吧禀横,binFile現(xiàn)在就是書的名字了屁药。這里我們讀入4個(gè)字,如果read()將讀入整個(gè)文件
context=binFile.read(4)
4柏锄。讀入之后問(wèn)題來(lái)了者祖,context包含四個(gè)字(4Bytes),但這四個(gè)字是加密的(二進(jìn)制)绢彤。這時(shí)要找翻譯struct.unpack
realContext=struct.unpack(format,context)
5七问。format的就是加密規(guī)則了,由1茫舶,2械巡,4,8個(gè)字節(jié)組成其他類型饶氏,或者其他類型的數(shù)組讥耗。
a,b,c,d=struct.unpack('4c',context)
讀入四個(gè)字符
對(duì)應(yīng)格式參考www.reibang.com/p/5a985f29fa81
6。打開文件后用完一定要關(guān)閉疹启,和看書一個(gè)樣古程,看完后要合上,不合上后果自己去想
binFile.close()
7喊崖。查找內(nèi)容挣磨,文件內(nèi)容可以一個(gè)一個(gè)字的按順序讀出,但如果已經(jīng)知道內(nèi)容在什么位置荤懂,可以用查找方式讀出茁裙。
binFile.seek(100)
context=binFile.read(4)
讀出100位置后面的4個(gè)字,(101节仿,102晤锥,103,104)
8廊宪。Python還提供也一些高級(jí)讀寫功能矾瘾,如整行讀取等