python bytearray转为byte_Python3 bytearray() 函数详解 将参数转为可变的字节数组

Python3 bytearray() 函数详解 将参数转为可变的字节数组

bytearray()函数的主要用途是将参数转换为一个新的字节数组,它是一个可变的整数序列,它的取值范围是0 <= x < 256(0~255),它具有可变序列的大多数方法。

它是Python的内置函数,在python文件中直接可以使用。

语法

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

参数

source(必选) - 源对象(可被转换的值),接下来会对source的几种情况进行详解。

encoding(可选) - 虽然它是可选的,但是如果source为字符串时,它是必选的,需要指定字符串的编码格式。

errors(可选) - 这个参数一般不需要设置,默认是'strict(严格)'。还有其他选项,比如'ignore(忽略)'等等。

§ source参数的几种情况详解

如果参数是一个字符串,你必须设置encoding参数来指定的它的编码格式,比较常用的有'utf8'、'gbk'等;

如果参数是一个整数,将会按照整数的数值,使用对应数量的空字节(\x00)来表示。比如参数为5,那么返回的结果则是b'\x00\x00\x00\x00\x00';

如果参数为与buffer接口一致的对象,则从一个字节序列或者buffer复制出一个可变的bytearray对象;

如果参数是可迭代的,则它的每一个值都必须是0~255的整数(不允许是字符串或者其他值),它们将被用作数组的初始化值;

如果参数未设置或者为0,则会创建一个大小为0的数组;如果为''(空)的话会报错的;

返回值

返回一个可变的字节数组。

常用方法

这里列举了一些比较常用的方法。

方法说明

clear()清空

append(n)追加一个字节(n为0~255的整数)

remove(value)删除第一个出现的字节,如果没有则产生ValueError错误

reverse()字节顺序进行反转

decode(encoding='utf-8')转为字符串

find(sub[, start[, end]])查找子字节串

实例

§ 实例1 - 参数为字符串

不设置encoding(字符编码)会报错的。

代码及运行结果:

>>>bytearray('字节数组', 'utf8')

bytearray(b'\xe5\xad\x97\xe8\x8a\x82\xe6\x95\xb0\xe7\xbb\x84')

§ 实例2 - 参数为整数,且必须为正数,负数会报错的。

代码及运行结果:

>>>bytearray(8)

bytearray(b'\x00\x00\x00\x00\x00\x00\x00\x00')

§ 实例3 - 参数为可迭代的

常用可迭代的有:列表(list),元组(tuple),range()方法以及for循环。

代码及运行结果:

>>>bytearray([1,2,3,4,5]) #列表(list)

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

>>>bytearray((1,2,3,4,5)) #元组(tuple)

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

>>>bytearray(range(1,6)) #range()方法

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

>>>bytearray(i for i in range(1,6)) #for循环

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

§ 实例4 - 参数为不设置或0

代码及运行结果:

>>>bytearray() #不设置参数

bytearray(b'')

>>>bytearray(0) #参数为0

bytearray(b'')

§ 实例5 - 常用方法 - clear()

#先声明一个字节数组并赋值给对象o

>>>o = bytearray(8)

>>>o

bytearray(b'\x00\x00\x00\x00\x00\x00\x00\x00')

#进行清空

>>>o.clear()

>>>o

bytearray(b'')

§ 实例6 - 常用方法 - append()

#先声明一个字节数组并赋值给对象o

>>>o = bytearray(8)

>>>o

bytearray(b'\x00\x00\x00\x00\x00\x00\x00\x00')

#在最后追加了一个数字2

>>>o.append(2)

>>>o

bytearray(b'\x00\x00\x00\x00\x00\x00\x00\x00\x02')

§ 实例7 - 常用方法 - remove()

#先声明一个字节数组并赋值给对象o

>>>o = bytearray([1,2,3,4,5])

>>>o

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

#删除数字3

>>>o.remove(3)

>>>o

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

§ 实例8 - 常用方法 - reverse()

#先声明一个字节数组并赋值给对象o

>>>o = bytearray([1,2,3,4,5])

>>>o

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

#反转顺序

>>>o.reverse()

>>>o

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

§ 实例9 - 常用方法 - decode()

#先声明一个字节数组并赋值给对象o

>>>o = bytearray('字节数组', 'utf-8')

>>>o

bytearray(b'\xe5\xad\x97\xe8\x8a\x82\xe6\x95\xb0\xe7\xbb\x84')

#默认是utf-8编码格式,需要其他格式需指定encoding参数

>>>o.decode()

'字节数组'

§ 实例10 - 常用方法 - find()

#先声明一个字节数组并赋值给对象o

>>>o = bytearray([1,2,3,4,5])

>>>o

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

#查找数字3,返回其所在位置的下标。

>>>o.find(3)

2

>>>

你可能感兴趣的:(python,bytearray转为byte)