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

吉丁

因此,我尝试将数据转换为Bytes,以使人类不易读取。。。但是,以某种方式,在Python中,Bytes显然意味着在字符串的两边都有b'和'。我看不到任何字符串到字节的转换。

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

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

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么我们仍然可以使用已处置的对象?

为什么我们访问由 char* 指向的字节的值而不是指针的值?

为什么我们仍然需要 JWT 令牌来保证安全,尽管仍然可以更改自己的令牌

我们可以直接在Java的字节缓冲区中读取对象吗?

为什么我们仍然使用CPU而不是GPU?

为什么我们不能在python中更改字符串的特定值

为什么我们在 ElasticSearch 索引中仍然有 `doc_types`?

为什么我们使用 try,除了在 Python 中

为什么我们需要python中的协程?

为什么我们在Python中需要“ finally”子句?

为什么我们需要Python中的属性?

为什么我们使用mask来削减字节?

为什么我们从控制台读取字符数组而不是字符串的密码

为什么我们可以在 C# 中的值类型(如 int)上应用 ==(相等运算符)?

为什么我们可以在 C# 中的值类型(如 int)上应用 ==(相等运算符)?

为什么我们不需要使用“ require”语句,但仍然可以使用内置函数?

为什么即使我们在不同的线程中使用了不同的锁,值也仍然正确设置

为什么我们可以使用数组快速返回多个值时使用元组

Python:为什么我们在函数中使用布尔值来返回主程序中的打印语句?

为什么我们可以在java中在括号中赋值?

Python,为什么我们可以创建类创建中未定义的类变量?

为什么我们可以在SQL Server中编辑视图

在C ++中,为什么我们可以重载`operator->`而不能重载`operator。

为什么在Scala中我们可以使用新类作为父类的类型?

我们可以用python生成器读取pickle文件中的数据吗

为什么我们使用>>从RGB获取颜色值?

为什么我们需要1,2,4,8个字节将逻辑变量存储在fortran中?

为什么我们在 sql 中检查字符串值时会出错

为什么我们不能在类中为方法添加默认值