为什么我们仍然可以在Python中读取字节值

时间:2019-05-15 02:53:52

标签: python file byte

所以我尝试将我的数据转换为字节,以便人类不会轻易读取... 但是以某种方式,在Python中,字节显然意味着在我的字符串的任一侧都有b'和'。我看不到任何字符串到字节的转换。

>>> bytes('hello', 'utf-8')
b'hello'
>>> 'hello'.encode('utf-8')
b'hello'

1 个答案:

答案 0 :(得分:0)

当您说字节时,我想您想转换成位。

>>> a = 'stackoverflow'
>>> b = bytes(a, 'utf-8')
>>> c =  ' '.join(["{0:b}".format(x) for x in b])
>>> c
'1110011 1110100 1100001 1100011 1101011 1101111 1110110 1100101 1110010 1100110 1101100 1101111 1110111'


>>> ' '.join(map(bin,bytearray(b)))
'0b1110011 0b1110100 0b1100001 0b1100011 0b1101011 0b1101111 0b1110110 0b1100101 0b1110010 0b1100110 0b1101100 0b1101111 0b1110111'

在这种情况下,另一个第三部分库Bitarray也很方便。

>>> import bitarray
>>> a = bitarray.bitarray()
>>> a
bitarray()
>>> a.frombytes('stackoverflow'.encode('utf-8'))
>>> a
bitarray('01110011011101000110000101100011011010110110111101110110011001010111001001100110011011000110111101110111')
>>> a.tobytes()
b'stackoverflow'