python之bytes

需要掌握字节(byte)
需要掌握python字符串
需要掌握ASCII、GBK、Unicode、UTF-8编码

概述

bytes由字节组成的序列,是 不可变对象

bytes常用方法类似str

功能相当于C语言的字节数组

定义bytes数据

Python对bytes类型的数据用带 b前缀 的 单引号 或 双引号 表示:

b=b''        #创建一个空的bytes
b=bytes()    #创建一个空的bytes
b=b'Hello world'    #直接指定字符串是bytes类型

注意
引号里面的内容只能是 ASCII码,不能出现 汉字,否则报错。见下面代码

b=b'哈喽'

报错如下:

SyntaxError: bytes can only contain ASCII literal characters.

当使用ASCII码以外的字符时,需要做转换处理

1、count

#计算子字符串(字符串表示的二进制数据)在规定范围内出现的次数
bytes.count(sub[, start[, end]])
bytearray.count(sub[, start[, end]])

2、decode

#返回指定编码的字符串表示二进制数据
bytes.decode(encoding="utf-8", errors="strict")
bytearray.decode(encoding="utf-8", errors="strict")

3、endswith

#判断给定的(字符串表示二进制数)是否在指定范围内的结尾(是否是指定范围内的后缀)
bytes.endswith(suffix[,start[,end]])
bytearray.endswith(suffix[,start[,end]])

4、find

#判断子指定范围的字符串(字符串表示二进制数据)是否存在字符串(字符串表示二进制数据)中
bytes.find(sub[,start[,end]]
bytearray.find(sub[,start[,end]]

5、index

#查找子字符串(字符串表示的二进制数据)在指定范围内的索引位置
bytes.index(sub[,start[,end]])
bytearray.index(sub[,start[,end]])

6、join

#以字节数组为分隔符,来显示迭代器中的内容
bytes.join(iterable)
batearray.join(iterable)

7、maketrans

#是一个静态方法
#将(to)指定的二进制数据字符,映射到表中相同位置,相同长度的(from)位置上
static bytes.maketrans(from, to)
static bytearray.maketrans(from, to)

8、partition

#用来对字节数组进行分区,分成三部分,参数作为分隔符,
#如果参数部分包含于当前字节数组的子字符串,
#参数分隔符将字节数组切割成三部分,
#那么参数部分作为第二部分,第一部分为参数分隔符在当前字节数组中左边一部分,第三部分为分隔符右边一部分; 
#如果分隔符为当前字节数组的结尾,则第三部分为空字节数组; 
#如果参数不存在于当前字节数组中,则第一部分直接打印当前字节数组,第二,三部分为空字节数组。
bytes.partition(sep)
bytearray.partition(sep)

9、replace

#旧的字符串表示的二进制数据被新的字符串表示二十制数据取代,如果选项参数count被计数,则仅仅返回第一次计数
bytes.replace(old, new[,count]
bytearray.replace(old, new[,count]

10、rfind

#返回子序列在指定范围内的最高索引值,如果不在当前字节数组序列中,返回-1
bytes.rfind(sub[,start[,end]])
bytearray.rfind(sub[,start[,end]])

11、rindex

#同rfind,如果不存在于当前字节数组序列中,返回语法错误
bytes.rindex(sub[,start[,end]])
bytearray.rindex(sub[,start[,end]])

12、rpartition

#同partition,不处之处在于如果分隔符参数不包含于字节数组序列中,左边一,二部分为空数组
#如果分隔符参数在字节数组序列中的结尾,则第一分区为空数组,
#意思是与partition分区后数据存储位置相反
bytes.rpartition(sep)
batearray.rpartition(sep)

13、startswith

#判断子序列是否在指定范围内的开头(是否属于当前字节数组的前缀)
bytes.startswith(prefix[,start[,end]])
bytearray.startswith(prefix[,start[,end]])

14、translate

#删除指定子序列中的字符
bytes.translate(table,delete=b'')
bytearray.translate(table,delete=b'')

15、center

#将序列作为中心点,给序列指定一个新的长度,必须大于原长度,缺少的字符用指定的单字符来填充
bytes.center(width[,fillbyte])
bytearray.center(width[,fillbyte])

16、ljust

#同center,不处之处在于缺少的字符在序列右边用指定字符填充
bytes.ljust(width[,fillbyte])
bytearray.ljust(width[,fillbyte])

17、lstrip

#判断是否为序列的前缀,删除指定的字符或序列,如果序列左边有空格,参数为空可清除空格
bytes.lstrip([chars])
bytearray.lstrip([chars])

18、rjust

#同ljust,在序列左边用指定字符填充
bytes.rjust(width[,fillbyte])
bytearray.rjust(width[,fillbyte])

19、rsplit

#删除指定的字符,或连续的序列,把原序列切割成两部分,maxsplit=-1有效,,=0时无效
bytes.rstplit(sep=None,maxsplit=-1)
bytearray.rstrip(sep=None,maxsplit=-1)

20、rstrip

#同lstrip,删除序列的后缀中,指定的字符或序列,如果序列后缀为空格,参数为空时可清除空格
bytes.rtrip([chars])
bytearray.rstrip([chars])

21、split

#同split,注意空格与逗号的使用
bytes.split(sep=None,maxsplit=-1)
bytearray.split(sep=None,maxsplit=-1)

22、strip

#同rstrip, 删除指定的字符或序列(连续字符)
bytes.strip([chars])
bytearray.strip([chars])

23、capitalize

#如果序列的第一个字符为字母,把它转化为大写,否则无效
bytes.capitalize()
bytearray.capitalize()

24、expandtabs

#扩大序列,参数用来改变\t制表符的大小
bytes.expandtabs(tabsize=8)
bytearray.expandtabs(tabsize=8)

25、isalnum

#判断序列是否是包含字母或数字的组合,如果有字母或数字以外的字符返回False
bytes.isalnum()
bytearray.isalnum()

26、isalpha

#判断序列是否全是字母,如果有字母以外的字符返回False
bytes.isalpha()
bytearray.isalpha()

27、isdigit

#判断序列是否为数字,如果有数字以外有字符返回False
bytes.isdigit()
bytearray.isdigit()

28、islower()

#判断序列中的字母是否全为小写,如果不是返回False。
bytes.islower()
bytearray.islower()

29、isspace

#判断序列是否为空格字符的序列,如果有空格以外的字符返回False
bytes.isspace()
bytearray.isspace()

30、istitle

#判断当前二进制序列是否为标题类型的序列,格式为每个单词首字母大写,其余为小写,单词间用空格作为分隔符。
bytes.title()
bytearray.title()

31、isupper

#判断序列中的字母是否全为大写,如果存在小写字母返回False
bytes.isupper()
bytearray.isupper()

32、lower

#将序列中的大写字母全部设置为小写。
bytes.lower()
bytearray.lower()

33、splitlines

#以换行符\n作为分隔符,将序列分割成若部分,如果参数为False,则子序列隐藏\n分隔符,如果参数为True,则子序列显示换行符\n
bytes.splitelines(keepends=False)
bytearray.splitelines(keepends=False)

34、swapcase

#将序列中的所有大写字母转换成小写,所有小写字母转换成大写
bytes.swapcase()
bytearray.swapcase()

35、title

#将当前的序列转换成标题模式:单词的每个首字母大写,以空格作为分隔符
bytes.title()
bytearray.title()

36、upper

#将序列中的字母全部转换成大写字母
bytes.upper()
bytearray.upper()

37、zfill

#用0填充当前的序列为指定长度的序列,以0作为序列的前缀填充,可以有“+”,“-”符号,在“+”或“-”之后,序列之前用0填充。
bytes.zfill(5)
bytearray.zfill(5)

bytes与str转换

https://www.malaoshi.top/show_1EF4e2yG4zxA.html

感谢:
https://blog.csdn.net/u011978079/article/details/89738094


原文出处:/show_1EF2Pg2sje3N.html