当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python bytes()用法及代码示例


python语言轻松提供了不同数据类型之间的相互转换。本文旨在演示和工作到bytes()的不同数据类型的相互转换,通常可用于编码方案。
byte()将对象转换为给定大小和数据的不可变字节表示的对象。

语法:bytes(src,enc,err)参数:src:必须转换的源对象enc:如果对象是字符串,则需要的编码err:如果字符串转换失败,则处理错误的方式。返回:根据src类型,由unicode 0-256个字符组成的字节不可变对象。整数:返回大小初始化为null的大小的数组。可迭代:返回元素大小等于可迭代元素(0-256)的可迭代大小的数组。字符串:返回已编码的字符串acc。编码,如果编码失败,则根据指定的err执行操作。无参数:返回大小为0的数组。

代码1:在整数,无和可迭代对象上演示byte()


# Python 3 code to demonstrate the  
# working of bytes() on int, iterables, none 
  
# initializing integer and iterables 
a = 4
lis1 = [1, 2, 3, 4, 5] 
  
# No argument case 
print ("Byte conversion with no arguments:" + str(bytes()))  
  
# conversion to bytes  
print ("The integer conversion results in:"  + str(bytes(a))) 
print ("The iterable conversion results in:"  + str(bytes(lis1)))

输出:

Byte conversion with no arguments:b''
The integer conversion results in:b'\x00\x00\x00\x00'
The iterable conversion results in:b'\x01\x02\x03\x04\x05'

字节与字符串的行为

字节接受字符串作为参数,并要求使用编码方案来执行它。其中最重要的方面是在编码失败的情况下处理错误,其中定义的一些错误处理方案为:

String Error Handlers:
strict: Raises the default UnicodeDecodeError in case of encode failure.
ignore: Ignores the unencodable character and encodes the remaining string.
replace: Replaces the unencodable character with a ‘?’.

代码2:使用字符串演示bytes()

# Python 3 code to demonstrate the  
# working of bytes() on string 
  
# initializing string 
str1 = 'GeeksfÖrGeeks'
  
# Giving ascii encoding and ignore error 
print ("Byte conversion with ignore error:" +
      str(bytes(str1, 'ascii', errors = 'ignore')))  
  
# Giving ascii encoding and replace error 
print ("Byte conversion with replace error:" +
      str(bytes(str1, 'ascii', errors = 'replace')))  
  
# Giving ascii encoding and strict error 
# throws exception 
print ("Byte conversion with strict error:" +
      str(bytes(str1, 'ascii', errors = 'strict'))) 

输出:

Byte conversion with ignore error:b'GeeksfrGeeks'
Byte conversion with replace error:b'Geeksf?rGeeks'

异常:

Traceback (most recent call last):
  File "/home/0458f7fae57c6f4102366356593842ef.py", line 15, in 
    print ("Byte conversion with strict error:" + str(bytes(str1, 'ascii', errors = 'strict'))) 
UnicodeEncodeError:'ascii' codec can't encode character '\xd6' in position 6:ordinal not in range(128)



相关用法


注:本文由纯净天空筛选整理自manjeet_04大神的英文原创作品 Python | bytes() method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。