在Python3 +中将十六进制字符串转换为base64的正确方法以及什么编解码器模块适用?

时间:2018-09-25 12:07:28

标签: python-3.x encoding

我在寻找一种将hex字符串转换为base64的方法。已经有了答案here,但是最好的答案,即使非常优雅,也适用于Python的早期版本。

到目前为止,这是我解决问题的方法:

import codecs
import base64

def hex_to_base64(hex_str):
    decode_hex = codecs.getdecoder("hex_codec")
    encode_b64 = base64.b64encode(decode_hex(hex_str)[0])
    return encode_b64

是否有更好/更多的Pythonic方法?

我想我可以缩短它并摆脱导入codecs的过程,如下所示:

import base64

def hex_to_base64(hex_str):
    encode_b64 = base64.b64encode(bytes.fromhex(hex_str))
    return encode_b64

现在,这引出了我的第二个问题: codec模块的作用是什么? 该模块已被描述为

  

此模块为标准Python编解码器(编码器和解码器)定义基类

那么我可以使用codec模块进行所有的编码和解码吗?

0 个答案:

没有答案