cuband
cuband

Reputation: 21

Python : Convert from C-Char to Int

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...

Upvotes: 2

Views: 1257

Answers (1)

Tim Pietzcker
Tim Pietzcker

Reputation: 336098

>>> 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.

Upvotes: 4

Related Questions