Estoy tratando de convertir imágenes de mapa de bits en una cadena de base64 antes de insertarla en la base de datos como blobs binarios. La cadena base64 necesita estar codificada de tal manera que su es un nuevo carácter de línea después de cada 76 caracteres. ¿Cuál es la mejor forma pitónica de hacer esto?Insertar carácter de nueva línea después de cada 76 caracteres en una cadena de base64
Respuesta
'\n'.join(s[pos:pos+76] for pos in xrange(0, len(s), 76))
Desde Base64 exige una longitud de línea fija (64 o 76 caracteres, dependiendo de which version you look at), la biblioteca que produce la Base64 cadena ya debe hacer eso (o al menos tiene una opción para hacer que).
Si desea salto de línea, no utilizan el paquete base 64 recta, utilice el proporcionado en el correo electrónico:
import email
print email.base64MIME.encode(your_string)
es lo que hace dividir la cadena codificada cada 76 caracteres
Para la versión de Python 3:
import base64
base64.encodebytes(s)
https://docs.python.org/3/library/base64.html#base64.encodebytes
Codifique los objetos tipo byte s, que pueden contener datos binarios arbitrarios, y los bytes de retorno que contienen los datos codificados en base64, con nuevas líneas (b '\ n') insertadas después de cada 76 bytes de salida y asegurándose de que es una nueva línea final, según RFC 2045 (MIME).
Ejemplo:
>>> print(base64.encodebytes(b'a' * 100).decode())
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYQ==
>>>
Para Python versión 2:
import base64
base64.encodestring(s)
http://docs.python.org/library/base64.html
codificar la cadena s, que puede contener datos binarios arbitrarios, y la de regreso una cadena que contiene uno o más líneas de datos codificados en base64. encodestring() devuelve una cadena que contiene una o más líneas de datos codificados en base64, incluyendo siempre una nueva línea adicional ('\ n').
Los documentos para la versión 2 se podrían escribir con mayor claridad, pero hacen lo que usted desea.
Ejemplo:
>>> print base64.encodestring('a'*100)
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYQ==
>>>
Debe utilizar estricta codificación. Que añadirá una nueva línea
'your_string_goes_here'.encode('base64', 'strict')
- 1. Cómo insertar un carácter de línea nueva después de cada 200 caracteres con jQuery
- 2. Insertar una coma después de cada carácter en C#
- 3. cadena de JavaScript carácter de nueva línea?
- 4. ¿Cómo puedo insertar un carácter después de cada n caracteres en javascript?
- 5. JavaScript nueva línea de caracteres
- 6. La colocación de cada personaje en una nueva línea
- 7. Cómo insertar carácter de nueva línea después de la coma en `), (` con sed?
- 8. cómo insertar nueva línea después de un carácter específico en las secuencias de comandos
- 9. Detectar un carácter de nueva línea
- 10. Mire cada carácter en una cadena
- 11. android insertar nueva línea en una notificación
- 12. Caracteres nativos de línea nueva?
- 13. Carácter de nueva línea en stringbuilder
- 14. ¿Cómo agregar una nueva línea extra con 'puts' sin pegar el carácter de nueva línea en una cadena?
- 15. ¿Cómo puedo insertar un espacio después de cierta cantidad de caracteres en una cadena usando Python?
- 16. ¿No hay línea nueva después de div?
- 17. Cómo insertar un nuevo carácter de línea después de un número fijo de caracteres en un archivo
- 18. ¿Por qué csvwriter.writerow() pone una coma después de cada carácter?
- 19. salto de línea C# cada n caracteres
- 20. Insertar tr después de cada tercer ciclo
- 21. Advertencia de "línea imprimible entre comillas de más de 76 caracteres" al enviar correo electrónico HTML
- 22. ¿Cómo incluyo un carácter de nueva línea en una cadena en Delphi?
- 23. Mostrar carácter de nueva línea en PDF generado con FOP
- 24. BASH: Tira carácter de nueva línea de cuerda (leer línea)
- 25. Agregar una nueva línea en una cadena en C#
- 26. Insertar un carácter en una cadena en una posición determinada
- 27. Ponga cada resultado de XQuery en una nueva línea
- 28. Regex reemplazar todos los caracteres de nueva línea con comas
- 29. Cómo escapar de una nueva línea de la cadena
- 30. ¿Cómo puedo incluir caracteres especiales (tabulación, nueva línea) en una cadena de resultados doctest de python?
Esto añade una nueva línea. Pruebe con una cadena más larga y verá. Además, "... 'strict', lo que significa que los errores de codificación provocan un error UnicodeError)" https://docs.python.org/2/library/stdtypes.html?highlight=encode#str.encode –