¿Cómo puedo convertir una cadena en su valor de byte? Tengo una cadena "hello"
y quiero cambiar es algo así como "/x68..."
.Cómo convertir cadenas a matrices de bytes?
Respuesta
Python 2.6 y posterior tienen un tipo bytearray que puede ser lo que estás buscando. A diferencia de las cadenas, es mutable, es decir, puede cambiar los bytes individuales "en su lugar" en lugar de tener que crear una cadena entera nueva. Tiene una buena combinación de las características de listas y cadenas. Y también hace que tu intención sea clara, que trabajas con bytes arbitrarios en lugar de texto.
quote "Quiero cambiar todo lo que está en el archivo (String) en la matriz de bytes." .. @ la respuesta de kindall hace exactamente eso. +1 para bytearray() – easysid
'list (bytearray (" hello "))' –
Hice algunas pruebas de velocidad y 'list (bytearray (" hello "))' es más rápido que 'map (ord," hello ")' –
Si desea obtener representación de cadena hexadecimal que podría hacer:
"hello".encode("hex") # '68656c6c6f'
Y para cumplir con su representación de referencia (no lo tome en serio, supongo que esto es no lo que realmente quiere) :
"".join(["/x%02x" % ord(c) for c in "hello"]) # '/x68/x65/x6c/x6c/x6f'
Tal vez usted quiere esto (Python 2):
Para una cadena Unicode devolvería Unicode puntos de código:
>>> map(ord,u'Hello, 马克')
[72, 101, 108, 108, 111, 44, 32, 39532, 20811]
pero codifican para obtener valores de bytes para la codificación:
>>> map(ord,u'Hello, 马克'.encode('chinese'))
[72, 101, 108, 108, 111, 44, 32, 194, 237, 191, 203]
>>> map(ord,u'Hello, 马克'.encode('utf8'))
[72, 101, 108, 108, 111, 44, 32, 233, 169, 172, 229, 133, 139]
Tenga en cuenta que esto no devolverá valores de "byte" para caracteres que no sean ASCII, ya que ord devolverá algo más grande que 0xFF. – user100464
@ user100464, no para una cadena de bytes, que lo anterior es para Python 2 ('map' no devuelve una lista en Python 3). Un byte no puede estar por encima de 0xFF. Además, no ASCII está por encima de 0x7F, no 0xFF :) –
- 1. Cómo convertir cadenas a y desde matrices de bytes UTF8 en Java
- 2. Convertir bytes ASCII [] a String
- 3. Convertir una matriz de cadenas a matriz de bytes
- 4. Cómo convertir a NSString bytes
- 5. ¿Cómo puedo comprimir y descomprimir fácilmente cadenas a/desde matrices de bytes?
- 6. Cómo convertir cadenas a control?
- 7. Equivalente a StringBuilder para matrices de bytes
- 8. Cómo convertir una secuencia de bytes a otra codificación?
- 9. Java: Convertir bytes a entero
- 10. ¿Cómo convertir bytes a un doble?
- 11. Convertir 4 bytes a int
- 12. Cómo comparar dos matrices de bytes
- 13. convertir matriz de cadena a matriz de bytes
- 14. Asignar cadenas a matrices de caracteres
- 15. ¿Convertir bytes de NSData a NSString?
- 16. Cómo comparar dos imágenes usando matrices de bytes
- 17. cómo convertir cadenas binarias a decimales?
- 18. Cómo convertir cadenas UTF-8 a cadenas RTF en java?
- 19. Convertir matriz de bytes a archivo wav
- 20. Python: convertir cadena a matriz de bytes
- 21. Truncando cadenas por bytes
- 22. Convertir bytes a bits en python
- 23. Escribir matrices de bytes a serial con Ruby
- 24. Convertir Enumerable.Range a una lista de cadenas
- 25. Convertir estructura en bytes
- 26. cómo convertir una matriz de bytes a Stream
- 27. Android: ¿cómo convertir el conjunto de bytes a Bitmap?
- 28. Cómo convertir una matriz de bytes a blob
- 29. Cómo convertir un entero a matriz de bytes en php
- 30. ¿Cómo convertir NSData a matriz de bytes en iPhone?
Se dan cuenta de que todo es sólo bits y bytes en el nivel más bajo y que las cuerdas '" hello "' y '" \ x68 \ x65 \ x6C \ x6C \ x6F "' son idénticas (a menos que escape las barras diagonales inversas en lugar de usarlas para escapes hexadecimales). – delnan
Sí, lo sé. Solo quiero exportar a una matriz en un nivel tan bajo. – Martin
Esto no tiene sentido, ¿qué es lo que _actualmente_ quieres hacer? (Este es solo un paso intermedio que usted cree que debe hacer) – plundra