在 Python 库中,有用于处理 Base64 的 base64 模块。同时,如果要对字符串进行编码,还有base64的编解码器,即str.encode('base64_encode')
. 首选哪种方法?
问问题
2734 次
2 回答
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
模块都比较好。
于 2013-04-25T03:16:12.787 回答
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
于 2014-09-23T15:25:50.797 回答