python bytes转换为string_python string与bytes定义,相互转换

1- bytes

b'C' b'\x01' b'\x010203' b'hello'

>>> a = b'\x01'

>>> type(a)

>>> a = b'C'

>>> type(a)

>>> a = b'\x010203'

>>> type(a)

>>> len(a)

5

>>> a = bytes()

>>> a

b''

>>> type(a)

>>>

>>>

>>> a = b'hello'

>>> type(a)

>>> a

b'hello'

Python3 bytes 函数

描述

bytes 函数返回一个新的 bytes 对象,该对象是一个 0 <= x < 256 区间内的整数不可变序列。它是 bytearray 的不可变版本。

语法

以下是 bytes 的语法:

class bytes([source[, encoding[, errors]]])

参数

如果 source 为整数,则返回一个长度为 source 的初始化数组;bytes(int)指定字节的bytes,被0填充

如果 source 为字符串,则按照指定的 encoding 将字符串转换为字节序列;

如果 source 为可迭代类型,则元素必须为[0 ,255] 中的整数;

如果 source 为与 buffer 接口一致的对象,则此对象也可以被用于初始化 bytearray。

如果没有输入任何参数,默认就是初始化数组为0个元素。

2-bytearray

>>> a = bytearray((1,2,4,5))

>>> type(a)

>>> a

bytearray(b'\x01\x02\x04\x05')

描述

bytearray() 方法返回一个新字节数组。这个数组里的元素是可变的,并且每个元素的值范围: 0 <= x < 256。

语法

bytearray()方法语法:

class bytearray([source[, encoding[, errors]]])

参数

如果 source 为整数,则返回一个长度为 source 的初始化数组;

如果 source 为字符串,则按照指定的 encoding 将字符串转换为字节序列;

如果 source 为可迭代类型,则元素必须为[0 ,255] 中的整数;

如果 source 为与 buffer 接口一致的对象,则此对象也可以被用于初始化 bytearray。

如果没有输入任何参数,默认就是初始化数组为0个元素。

3-str与bytes之间的转换

# bytes object

b = b"example"

# str object

s = "example"

# str to bytes

s2b = bytes(s, encoding = "utf8")

# bytes to str

b2s = str(b, encoding = "utf8")

# an alternative method

# str to bytes

s2b2 = str.encode(s)

# bytes to str

bs2 = bytes.decode(b)

4-bytes、bytearray

Python3引入两个新类型:

bytes:不可变类型

bytearrayy:字节数组,可变

bytes操作

除了格式化方法(format和format_map)和几个处理unicode数据的方法(包括casefold、idecimal、isdentifier、isnumeric、isprintable和encode)之外,str类型的其他方法都支持bytes和bytearray

类方法bytes.fromhex(string)

string必须是2个字符的16进制形式,“61 62 6a 6b”,空格将被忽略

In [8]: a=bytes.fromhex("61 62 63 6a 6b")

In [9]: a

Out[9]: b'abcjk'

hex()和上面相反

返回进制的字符串

In [10]: b="abc".encode().hex()

In [11]: b

Out[11]: '616263

int.from_bytes(bytes, byteorder)

bytes类型转换为十进制整数int类型

In [6]: a = int.from_bytes(b"abc", "big")

In [7]: hex(a)

Out[7]: '0x616263'

索引,返回一个int类型数

In [12]: b"abcd"[1]

Out[12]: 98

bytearray操作

和bytes类型的方法相同

In [9]: bytearray(b"abcdefk").replace(b"f",b"m")

Out[9]: bytearray(b'abcdemk')

In [10]: bytearray(b"abcdefk").find(b"a")

Out[10]: 0

类方法

bytearray.fromhex(string)

string必须是2个字符的16进制形式

In [11]: bytearray.fromhex("61 62 6364 65")

Out[11]: bytearray(b'abcde')

hex()上面的相反

In [12]: bytearray("abc".encode()).hex()

Out[12]: '616263'

索引

In [13]: bytearray(b"abcde")[1]

Out[13]: 98

append(int)尾部追加一个元素

In [14]: b=bytearray()

In [15]: b.append(97)

In [16]: b

Out[16]: bytearray(b'a')

insert(index,int)在指定位置插入元素

In [17]: b.insert(1,99)

In [18]: b

Out[18]: bytearray(b'ac')

extend(iyterable_of_ints)将一个可迭代的整数集合追加到当前的bytearray

In [19]: b.extend([65,66,67])

In [20]: b

Out[20]: bytearray(b'acABC')

pop(index= -1)从指定的索引上一处元素,默认从尾部移除,返回移除的值的int类型

In [21]: b.pop()

Out[21]: 67

remove(value),找到第一个value移除,找不到抛异常

clear()清空bytearray

In [29]: b

Out[29]: bytearray(b'acA')

In [30]: b.clear()

In [31]: b

Out[31]: bytearray(b'')

reverse()就地翻转

In [27]: b

Out[27]: bytearray(b'Aca')

In [28]: b.reverse()

In [29]: b

Out[29]: bytearray(b'acA')

5-int byte

use python3 package struct

希望与广大网友互动??

点此进行留言吧!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值