binascii 模塊:
創(chuàng)新互聯(lián)公司長期為1000多家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為海豐企業(yè)提供專業(yè)的成都網(wǎng)站設(shè)計、成都網(wǎng)站建設(shè),海豐網(wǎng)站改版等技術(shù)服務(wù)。擁有10年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。它包含一個把二進(jìn)制數(shù)值轉(zhuǎn)換成十六進(jìn)制的函數(shù),同樣也可以反過來轉(zhuǎn)。 #binary_value是二進(jìn)制數(shù)值不是字符串,也不是int型的1010
binascii.b2a_hex(binary_value) ##binary_value 一般讀二進(jìn)制文件可以得到
>>'89'
python自帶的builtin函數(shù):
bin(num) 十進(jìn)制數(shù)值 ===》二進(jìn)制字符串
bin(10)
>> '0b1010'
oct(num) 十進(jìn)制數(shù)值 ===》八進(jìn)制字符串
oct(10)
>>'012'
hex(num) 十進(jìn)制數(shù)值 ===》十六進(jìn)制字符串
hex(20)
>>'0x14'
int(str, base) 其它進(jìn)制字符串 ===》十進(jìn)制的數(shù)值,其中base代表str具體是屬于哪個進(jìn)制,如果是2則表示str是二進(jìn)制, 默認(rèn)base為十進(jìn)制
int('20')
>>20
int('10', 2)
>>2
int('10', 8)
>>8
int('20', 10)
>>20
int('20',16)
>>32
字符與數(shù)字轉(zhuǎn)換函數(shù):
chr(int) 整型 轉(zhuǎn) 字符
chr(65)
>>'A',
ord(chr) 字符 轉(zhuǎn) 整型
ord('a')
>>97, 鄭州婦科醫(yī)生推薦 http://m.120ask.com/zhenshi/
最后,給一個讀取圖片文件二進(jìn)制內(nèi)容的示例:
#!/usr/bin/env python
#encoding: utf-8
import binascii
fh = open(r'C:\Temp\img\2012517165556.png', 'rb')
a = fh.read()
#print 'raw: ',`a`,type(a)
hexstr = binascii.b2a_hex(a) #得到一個16進(jìn)制的數(shù)
#print 'hex: ',hexstr, type(hexstr)
bsstr = bin(int(hexstr,16))[2:]
print 'bin: ',bsstr, type(bsstr)