在base64字符串中每76个字符后插入换行符

nas*_*eeg 8 python base64

我试图将位图图像转换为base64字符串,然后将其作为二进制blob插入数据库.base64字符串需要以每76个字符后的新行字符进行编码.这样做的最好的pythonic方法是什么?

mpb*_*mpb 10

对于Python版本3:

import base64
base64.encodebytes(s)
Run Code Online (Sandbox Code Playgroud)

https://docs.python.org/3/library/base64.html#base64.encodebytes

编码类似字节的对象s,它可以包含任意二进制数据,并返回包含base64编码数据的字节,在每76个字节的输出后插入换行符(b'\n'),并确保有一个尾随换行符,根据RFC 2045(MIME).

例:

>>> print(base64.encodebytes(b'a' * 100).decode())
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYQ==

>>> 
Run Code Online (Sandbox Code Playgroud)

对于Python版本2:

import base64
base64.encodestring(s)
Run Code Online (Sandbox Code Playgroud)

http://docs.python.org/library/base64.html

对字符串s进行编码,该字符串可以包含任意二进制数据,并返回包含一行或多行base64编码数据的字符串.encodestring()返回一个包含一行或多行base64编码数据的字符串,该数据总是包含一个额外的尾随换行符('\n').

版本2的文档当然可以更清楚地编写,但它可以满足您的需求.

例:

>>> print base64.encodestring('a'*100)
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYQ==

>>> 
Run Code Online (Sandbox Code Playgroud)


nos*_*klo 9

'\n'.join(s[pos:pos+76] for pos in xrange(0, len(s), 76))
Run Code Online (Sandbox Code Playgroud)