¿Hay una manera de hacer la traducción de caracteres (algo así como el comando tr) usando pitóntraducción de caracteres usando Python (como el comando tr)
Respuesta
Ver string.translate
import string
"abc".translate(string.maketrans("abc", "def")) # => "def"
Nota comentarios del Departamento de Comercio sobre sutilezas en la traducción de cadenas unicode
Editar: Desde tr
es un poco más avanzado, también considere usar re.sub
.
Si está utilizando python3 traducir es menos detallado:
>>> 'abc'.translate(str.maketrans('ac','xy'))
'xby'
Ahh .. y también es equivalente a tr -d
:
>>> "abc".translate(str.maketrans('','','b'))
'ac'
Para tr -d
con python2.X usar un argumento adicional a la función de traducir:
>>> "abc".translate(None, 'b')
'ac'
¿hay un equivalente para 'tr -cd'? – Sundeep
Un enfoque más sencillo puede ser para nosotros e reemplazar. p.ej.
"abc".replace("abc", "def")
'def'
No es necesario importar nada. Funciona en Python 2.x
En Python 2, unicode.translate()
acepta mapeos normales, es decir. no hay necesidad de importar nada tampoco:
>>> u'abc+-'.translate({ord('+'): u'-', ord('-'): u'+', ord('b'): None})
u'ac-+'
El método translate()
es especialmente útil para el bombeo de caracteres (como '+' y '-' más arriba), que no se puede hacer con replace()
, y el uso de re.sub()
ISN' muy sencillo para ese propósito tampoco.
Debo admitir, sin embargo, que el uso repetido de ord()
no hace que el código parezca agradable y ordenado.
He desarrollado python-tr, implementado el algoritmo tr. Probémoslo.
Instalar:
$ pip install python-tr
Ejemplo:
>>> from tr import tr
>>> tr('bn', 'cr', 'bunny')
'curry'
>>> tr('n', '', 'bunny', 'd')
'buy'
>>> tr('n', 'u', 'bunny', 'c')
'uunnu'
>>> tr('n', '', 'bunny', 's')
'buny'
>>> tr('bn', '', 'bunny', 'cd')
'bnn'
>>> tr('bn', 'cr', 'bunny', 'cs')
'brnnr'
>>> tr('bn', 'cr', 'bunny', 'ds')
'uy'
Esta funciona para Python 3
-int('(1200)'.translate(str.maketrans('','','()')))
¿Cómo es esto diferente de Piotr Czapla [respuesta] (http://stackoverflow.com/a/1385542/369450)? – cpburnz
- 1. usando el comando rot13 y tr para tener una dirección de correo electrónico cifrada
- 2. tratando de ejecutar el comando git usando el script python
- 3. búsqueda de LINQ usando caracteres WildCards como *,% ,?
- 4. Usando el resultado de un comando como argumento en bash?
- 5. Python - conteo de frecuencia de letras y traducción
- 6. Sustitución de un carácter con muchos caracteres con tr
- 7. Traducción de código Python a JVM
- 8. Rieles: Cómo generar archivos de traducción como django
- 9. Traducción en JavaScript como gettext en PHP?
- 10. Como eliminar ascii extendido usando python?
- 11. mover videoVer ... usando animación de traducción
- 12. La traducción de Perl a Python
- 13. Traducción de idiomas humanos en Python
- 14. Traducción automatizada de Python a Java
- 15. subcadena usando el comando bat
- 16. Ejecutar un comando del sistema linux como superusuario, usando una secuencia de comandos python
- 17. Eliminar caracteres no ASCII de una cadena usando python/django
- 18. Ejecutar el comando de línea de comando interactivo usando C#
- 19. Usando IPython desde el shell de Python como `code.interact()`
- 20. Usando argumentos de línea de comando en Python: Comprender sys.argv
- 21. Combinación de archivos usando el comando COPY y obteniendo caracteres impares
- 22. Traducción de cadenas Qt dinámicas
- 23. unix tr buscar y reemplazar
- 24. traducción excepción generalizadas para el impulso pitón
- 25. LINQ2SQL como el comando de la frase
- 26. Python: Cadena de formato de una serie de expresiones regulares que utiliza tanto '%' como '{' como caracteres
- 27. Alternando colores de fila en una clase tr usando XSL
- 28. Comparar tiempo usando el comando de fecha
- 29. traducción de chatset de consola java
- 30. Cómo anteponer un tr al primer tr en una tabla?
Para python3, objeto ' 'módulo' no tiene atributo 'maketrans''. Use '" abc ".translate (str.maketrans (" abc "," def "))' ¡directamente! – SparkAndShine