在Python库中,有base64模块可用于Base64。同时,如果要对字符串进行编码,则存在base64的编解码器,即str.encode('base64_encode')
。哪种方法更受欢迎?
答案 0 :(得分:9)
虽然它可能适用于Python 2:
>>> 'foo'.encode('base64')
'Zm9v\n'
Python 3不支持它:
>>> 'foo'.encode('base64')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
LookupError: unknown encoding: base64
就速度而言(在Python 2中),b64encode
方法比.encode()
快三倍:
In [1]: %timeit 'fooasodaspf8ds09f8'.encode('base64')
1000000 loops, best of 3: 1.62 us per loop
In [5]: %timeit b64encode('fooasodaspf8ds09f8')
1000000 loops, best of 3: 564 ns per loop
因此,就速度和兼容性而言,base64
模块更好。
答案 1 :(得分:1)
仅供参考,还有另一个选项适用于Python 2.4+和3.2 +:
>>> from codecs import encode
>>> encode(b'fooasodaspf8ds09f8', 'base64')
b'Zm9v\n'
这还可以编码/解码gzip和bzip2等。
https://docs.python.org/3.4/library/codecs.html#binary-transforms
http://wingware.com/psupport/python-manual/3.4/whatsnew/3.4.html#improvements-to-codec-handling