Python binascii


Python binascii模塊

 

 

轉載請標明出處(http://blog.csdn.net/lis_12/article/details/52785755).

用處

主要用於二進制和ASCII互相轉換(Convert between binary and ASCII );

包含的函數

函數 描述
a2b_uu(string) 將以ascii編碼的一行數據轉化為二進制,並且返回二進制數據.
b2a_uu(data) 將二進制數據轉化為一行以ascii編碼的字符,date的最大長度為45.
a2b_base64(string) 將一塊base64的數據轉換為二進制數據,並返回該二進制數據
b2a_base64(string) 與上面相反
a2b_qp(string[, header]) quoted-printable data->bin,並返回
b2a_qp(data[, quotetabs, istext, header]) 與上面相反
a2b_hqx(string) binhex4格式化的ASCII數據轉換為二進制,沒有做RLE解壓.
b2a_hqx(data) 與上相反
rledecode_hqx(data) 按照binhex4標准,對data執行RLE解壓
rlecode_hqx(data) 對data執行binhex方式的壓縮,並返回結果
crc_hqx(data, crc) 計算data的binhex4的crc值
crc32(data[, crc]) 根據crc,計算crc32(32位檢驗和數據,然后將結果&0xffffffff(為了在所有Python版本中生成相同的結果,具體不清楚,求指導…)
b2a_hex(data) 返回二進制數據的16進制的表現形式
a2b_hex(data) 與上面相反
hexlify(data) 返回二進制數據的16進制的表現形式
unhexlify(hexstr) 與上面相反

注:一行數據最多45個字節.

相關內置函數

  1. chr():把一個整形轉換成ASCII碼表中對應的單個字符
  2. ord():把ASCII碼表中的字符轉換成對應的整形
  3. hex():把十進制轉換成16進制字符
  4. oct():把十進制轉換成八進制字符
  5. bin():把十進制整形轉換成二進制字符

code,使用示例

#coding:utf-8 import binascii a = 'hello world' #先把a轉換成二進制數據然后在用十六進制表示 b = binascii.b2a_hex(a) c = binascii.hexlify(a)#和a2b_hex()功能是一樣的,但是推薦用這個函數,具體不清楚= = print '{0:10s}'.format('b2a_hex'), for i in range(0,len(b),2): print b[i:i+2], print #到這是不是發現了,利用b2a_hex()返回的字符串長度為原串的兩倍,因為轉換為十六進制,一個字節用兩個字節表示了 print '{0:10s}'.format('hexlify'), for i in range(0,len(c),2): print c[i:i+2], print print '{0:10s}'.format('ord'), for i in a: print hex(ord(i))[2:],#手動轉換為二進制十六進制 print #與b2a_hex相反 print binascii.a2b_hex(b) print binascii.unhexlify(c) ''' result: b2a_hex 68 65 6c 6c 6f 20 77 6f 72 6c 64 hexlify 68 65 6c 6c 6f 20 77 6f 72 6c 64 ord 68 65 6c 6c 6f 20 77 6f 72 6c 64 hello world hello world '''
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32

參考鏈接:

  1. https://docs.python.org/2/library/binascii.html#module-binascii

  2. http://zeping.blog.51cto.com/6140112/1261876

  3. http://www.oschina.net/question/565065_138907


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM