convertir - ¿Deseas eliminar la nueva línea "/ n" de las cadenas codificadas en base64 en Python3?
python base64 encode file (4)
Coincido con la observación de Mandar de que base64.xxxx_encode()
produciría una salida sin base64.xxxx_encode()
línea.
Para aquellos que desean una comprensión más segura que una simple observación, estas son las promesas oficiales (más o menos) que puedo encontrar sobre este tema. La documentación de Python 3 menciona que base64.encode(...)
agregaría nuevas líneas después de cada 76 bytes de salida. Comparado con eso, todas las otras *_encode(...)
no mencionan en absoluto su comportamiento de alineación de línea, lo que puede considerarse como "sin comportamiento de ajuste de línea". Para lo que vale la pena, la documentación de Python 2 no menciona nada sobre el ajuste de línea en absoluto.
Estoy tratando de establecer una conexión HTTPS en Python3 y cuando intento codificar mi nombre de usuario y contraseña, el método de encodebytes
base64
devuelve el valor codificado con un nuevo carácter de línea al final "/ n" y, debido a esto, obtengo un error cuando intento conectarme.
¿Hay una manera de decirle a la biblioteca base64
que no agregue un nuevo carácter de línea al codificar o cuál es la mejor manera de eliminar este nuevo carácter de línea? Intenté usar el método de replace
pero obtengo el siguiente error:
Traceback (most recent call last):
File "data_consumer.py", line 33, in <module>
auth_base64 = auth_base64.replace(''/n'', '''')
TypeError: expected bytes, bytearray or buffer compatible object
Mi código:
auth = b''[email protected]:passWORD''
auth_base64 = base64.encodebytes(auth)
auth_base64 = auth_base64.replace(''/n'', '''')
¿Algunas ideas? Gracias
El siguiente código funcionaría
auth_base64 = auth_base64.decode(''utf-8'').replace(''/n'', '''')
En lugar de encodestring
considere utilizar b64encode
. Más tarde no agrega /n
caracteres. p.ej
In [11]: auth = b''[email protected]:passWORD''
In [12]: base64.encodestring(auth)
Out[12]: b''dXNlcm5hbWVAZG9tYWluLmNvbTpwYXNzV09SRA==/n''
In [13]: base64.b64encode(auth)
Out[13]: b''dXNlcm5hbWVAZG9tYWluLmNvbTpwYXNzV09SRA==''
Produce una cadena codificada idéntica excepto la /n
para el uso de python3: -
binascii.b2a_base64 (cipher_text, newline = False )
para el uso de python2:
binascii.b2a_base64 (cipher_text) [: -1]