Writing a stream of bytes
Tim Chase
python.list at tim.thechases.com
Fri Jan 15 11:05:09 EST 2016
On 2016-01-15 16:55, jmp wrote:
> Hi pyple !
>
>
> I'd like to write a stream of bytes into a file. I'd like to use
> the struct (instead of bytearray) module because I will have to
> write more than bytes.
>
> let's say I want a file with 4 bytes in that order:
>
> 01 02 03 04
>
> None of these work:
>
> import struct
>
> with open('toto', 'wb') as f: f.write(struct.pack('4B', *[1,2,3,4]))
> with open('toto', 'wb') as f: f.write(struct.pack('<4B',
> *[1,2,3,4]))
with open('toto', 'wb') as f:
> f.write(struct.pack('>4B', *[1,2,3,4]))
>
> I always end up with the following bytes on file:
> !hexdump toto
> 0000000 0201 0403
>
> Note: the '<' and '>' tells struct to pack for a litle/big endian
> architecture.
>
> The only solution I came up with is
>
> with open('toto', 'wb') as f: f.write(struct.pack('>4B',
> *[2,1,4,3]))
>
> But I'd rather not manipulate the stream, as it seems to me that
> this would be the job of struct. Or maybe I completely overlooked
> the actual issue ?
>
> Cheers,
>
> jm
>
> --
> https://mail.python.org/mailman/listinfo/python-list
More information about the Python-list
mailing list