tags:

views:

36

answers:

1

I have a string read in from a binary file that is unpacked using struct.unpack as a string of length n.

Each byte in the string is a single integer (1-byte) representing 0-255. So for each character in the string I want to convert it to an integer.

I can't figure out how to do this. Using ord doesn't seem to be on the right track...

A: 
>>> import struct
>>> a = struct.pack("ccc", "a", "b", "c")
>>> a
b'abc'
>>> b = struct.unpack("ccc", a)
>>> b
(b'a', b'b', b'c')
>>> ord(b[0])
97
>>> c = struct.pack("BBB", 1, 2, 3)
>>> c
b'\x01\x02\x03'
>>> d = struct.unpack("BBB", c)
>>> d
(1, 2, 3)

Works for me.

Tim Pietzcker
You answered my question perfectly. Thanks!
cuband
Great! Welcome to StackOverflow! Did you know that you can mark an answer as accepted by clicking the checkmark on the left?
Tim Pietzcker