In Python3, When I'm Reading A Binary File Why Does 'b' Become Prepended To My Content?
For example I'm trying to read a file as follows fd = open('mydb.dbf', 'rb') print(fd.read(1)) The output is: b'\x03' I wish for only '\x03'. Where is the extra character coming
Solution 1:
There is no extra character. You have a bytes
object, whose contents are the single byte \x03
.
The print
function prints the str
representation of any object. A bytes
object prints out as b'\x03'
. But that b
is no more part of the value than the quotes are (or, for that matter, the backslash, x, or two digits).
To convince yourself of this fact, try print(len(my_bytes))
or print(my_bytes[0])
. The length is 1
; the first value is the (byte) number 3
.
(If you didn't want a bytes
object, you shouldn't have opened the file in binary mode. But, considering that the first character is a control-C, you probably did want a bytes
object.)
Post a Comment for "In Python3, When I'm Reading A Binary File Why Does 'b' Become Prepended To My Content?"