python编码转换函数_python中的编码及转换模块
⼆进制和ASCII码互转的binascii模块
binascii模块包含很多⼆进制和各种ASCII码之间转换的⽅法。通常情况不会直接使⽤这些函数(每种编码⽅式都有各⾃独⽴的模块),⽽是使⽤像uu,base64,或binhex这样的封装模块。
a2b_*函数接受只含有ASCII码的Unicode字符串(参数中⽤string表⽰)。b2a_*函数只接受字节类对象(参数中⽤data表⽰)
binascii.a2b_uu(string)
unicode编码转换二进制将单⾏uu编码数据转换成⼆进制数据并返回。uu 编码每⾏的数据通常包含45 个(⼆进制)字节,最后⼀⾏除外。每⾏数据后⾯可能跟有空格。
binascii.b2a_uu(data, *, backtick=False)
将⼆进制数据转换为ASCII编码字符。 data的长度最多为45。如果 backtick 为ture,则零由"`"表⽰⽽不是空格。
binascii.a2b_base64(string):将base64数据转换成⼆进制。⼀次可以传递多⾏数据。
binascii.b2a_base64(data, *, newline=True):将⼆进制数据转换为⼀⾏⽤base64编码的ASCII字符串。如newline为true,则返回值包括换⾏符。
binascii.a2b_hqx(string)
将binhex4格式的 ASCII 数据不进⾏ RLE 解压缩直接转换为⼆进制数据。该字符串应包含完整数量的⼆进制字节,或者(在binhex4 数据最后部分)剩余位为零。
binascii.b2a_hqx(data):执⾏hexbin4类型⼆进制到 ASCII 码的转换并返回结果字符串。输⼊数据应经过 RLE 编码,且数据长度可被3整除(除了最后⼀个⽚段)。
binascii.b2a_hex(data)和binascii.hexlify(data)
返回⼆进制数据data的⼗六进制表⽰形式。每个字节都被转换为相应的2位⼗六进制表⽰形式。因此返回的字节对象的长度是data的两倍。
使⽤:bytes.hex() ⽅法也可以⽅便地实现相似的功能(但仅返回⽂本字符串)。
binascii.a2b_hex(hexstr)和binascii.unhexlify(hexstr)
返回由⼗六进制字符串hexstr表⽰的⼆进制数据。功能与b2a_hex()相反。 hexstr必须包含偶数个⼗六进制数字(可以是⼤写或⼩写),否则会引发 Error 异常。
使⽤:bytes.fromhex() 类⽅法也实现相似的功能(仅接受⽂本字符串参数,不限制其中的空⽩字符)。
模块的异常:
binascii.Error:通常是因为编程错误引发的异常。
binascii.Incomplete:数据不完整引发的异常。
base64模块:
base64.b64encode(bytes, altchars=None):对字节对象进⾏Base64编码
可选altchars必须是⼀个长2字节的bytes对象,它指定了⽤于替换 + 和 / 的字符,防⽌URL与⽂件系统中出现错误
base64.b64decode(bytes, altchars=None, validate=False):解码Base64编码。
如果validate值为False(默认值),则在填充检查前,将丢弃既不在标准base-64字母表也不在备⽤字
母表(altchars值)中的字符。如果validate为True,这些字符将导致binascii.Error。
base64.standard_b64encode(bytes):对bytes进⾏Base64编码
base64.standard_b64decode(bytes):解码Base64编码
base64.urlsafe_b64encode(bytes):使⽤-以及_代替+和/进⾏Base64编码,防⽌URL与⽂件系统中出现错误,返回结果中可能包含 =
base64.urlsafe_b64decode(bytes):使⽤-以及_代替+和/解码Base64编码
base64.decode(input, output):使⽤Base64编码解码输⼊⽂件的内容,并将结果写⼊输出⽂件。输⼊和输出必须是⽂件对象。
base64.decodebytes(bytes):解码Base64编码
base64.b32encode(bytes):⽤Base32编码
base64.b32decode(bytes, casefold=False, map01=None):解码Base32编码,可选casefold指定是否接受⼩写字母。
map01为I/L时,bytes中可以含有1并且1会被视为字母I/L计算,并且此时bytes中可以含有0并且0会被视为字母O计算,为了安全考虑,默认值被设为 None,即0和1不允许在bytes中出现。
base64.b16encode(s):⽤Base16编码
base64.b16decode(s, casefold=False):解码Base16编码,casefold指定是否接受⼩写字母
binhex模块:
以binhe4格式对⽂件进⾏编码和解码,该格式允许Macintosh⽂件以ASCII格式表⽰。
binhex.binhex(input, output)
将带有⽂件名输⼊的⼆进制⽂件转换为binhex⽂件输出 。输出参数可以是⽂件对象或类⽂件对象(拥有write()和close()⽅法的任何对象)。
binhex.hexbin(input, output)
解码binhex⽂件输⼊。 输⼊可以是⽀持read() 和 close() ⽅法的⽂件对象或类⽂件对象。
uu模块:
以uuencode格式对⽂件进⾏编码和解码。为了向后兼容,in_file和out_file可以接受包含路径名的字符串,并⾃动打开相应的⽂件进⾏读写
将in_file⽂件转换为uuencoded编码并输出到⽂件out_file。out_file⽂件将具有指定name和mode的标头作为解码⽂件被识别。如果backtick为真则⽤'`'表⽰零⽽不是空格。
uu.decode(in_file, out_file=None, mode=None, quiet=False)
解码uuencoded⽂件in_file并将结果输出到⽂件out_file。out_file和mode的默认值取⾃uuencode标头。如果⽂件已存在,uu.Error则引发
如果in_file是由不正确的uuencoder⽣成的,并且Python可以从该错误中恢复,quiet值设置为True则会发出警告,否则不发出警告。
最后编辑:2019-04-29作者:qingheluo
这个作者貌似有点懒,什么都没有留下。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论