In Python 3.X, bytes()
si accende una successione di interi in una sequenza byte:
>>> bytes([1,65,2,255])
b'\x01A\x02\xff'
Un'espressione generatore può essere utilizzata per convertire la sequenza in numeri interi (notare che int(x,0)
converte una stringa in un intero . secondo il suo prefisso 0x
seleziona esadecimale):
>>> list(int(x,0) for x in ['0x28','0x0','0x0','0x0'])
[40, 0, 0, 0]
loro combinazione:
>>> bytes(int(x,0) for x in ['0x28','0x0','0x0','0x0'])
b'(\x00\x00\x00'
E li scrivendo:
>>> L = ['0x28','0x0','0x0','0x0']
>>> with open('out.dat','wb') as f:
... f.write(bytes(int(x,0) for x in L))
...
4
fonte
2013-06-27 20:40:00
funziona per me – zhaozhi