est-il un moyen de faire de la traduction de caractères (un peu comme la commande tr) en utilisant pythonTraduction de caractères à l'aide de Python (comme la commande tr)
Répondre
Voir string.translate
import string
"abc".translate(string.maketrans("abc", "def")) # => "def"
note des commentaires de la doc sur les subtilités dans la traduction des chaînes Unicode.
Modifier: Depuis tr
est un peu plus avancé, pensez également à utiliser re.sub
.
Si vous utilisez python3 traduire est moins bavard:
>>> 'abc'.translate(str.maketrans('ac','xy'))
'xby'
Ahh .. et il y a aussi équivalent à tr -d
:
>>> "abc".translate(str.maketrans('','','b'))
'ac'
Pour tr -d
avec python2.X utiliser un argument supplémentaire pour traduire la fonction:
>>> "abc".translate(None, 'b')
'ac'
y at-il un équivalent pour 'tr -cd'? – Sundeep
Une approche plus simple peut être pour nous e remplacez. par exemple.
"abc".replace("abc", "def")
'def'
Pas besoin d'importer quoi que ce soit. Fonctionne en Python 2.x
En Python 2, unicode.translate()
accepte les mappages ordinaires, c.-à-d. il n'y a pas besoin d'importer quoi que ce soit soit:
>>> u'abc+-'.translate({ord('+'): u'-', ord('-'): u'+', ord('b'): None})
u'ac-+'
La méthode translate()
est particulièrement utile pour les caractères échange (comme « + » et « - » ci-dessus), qui ne peut être fait avec replace()
, et en utilisant re.sub()
n » très simple à cette fin non plus.
Je dois admettre, cependant, que l'utilisation répétée de ord()
ne rend pas le code joli et bien rangé.
J'ai développé python-tr, implémenté l'algorithme tr. Essayons.
Installer:
$ pip install python-tr
Exemple:
>>> 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'
Celui-ci fonctionne pour Python 3
-int('(1200)'.translate(str.maketrans('','','()')))
Comment cela est-il différent de [réponse] de Piotr Czapla (http://stackoverflow.com/a/1385542/369450)? – cpburnz
- 1. Aide traduction PYTHON à VB.NET
- 2. structure de données laide à la recherche java
- 3. Localisation .NET: traduction manuelle ou codage de caractères
- 4. PLINK changer la traduction du jeu de caractères en UTF-8 (utf8)
- 5. impression opérateur module python comme il est sur la ligne de commande
- 6. sudoku obfuscated python -> traduction perl
- 7. Historique de ligne de commande Python persistant
- 8. html_entity_decode caractères comme & Yuml vs & yuml
- 9. algorithme de traduction
- 10. la sortie de traduction WTP Eclipse
- 11. Caractères spéciaux en Python
- 12. Chaîne de traduction en Drupal
- 13. Comment créer une traduction à la valeur "timesince"? (Balise modèle)
- 14. Division de la sortie de ps à l'aide de Python
- 15. Table complexe - Spécifique à la cible <TR>
- 16. ligne de commande Windows et Python
- 17. Supprimer les caractères en Python
- 18. Y at-il quelque chose comme une base de données de traduction pour les chaînes?
- 19. Traduction de paroles en html
- 20. commande LYNX comme dans DOS?
- 21. Caractères XML dans python xml.dom
- 22. Python (bibliothèque de création d'image): Rééchantillonner la chaîne comme argument
- 23. Arguments de la ligne de commande WinMain
- 24. WPF style pour effectuer la traduction après mise à l'échelle
- 25. Python comme Windows Watchdog
- 26. Remplacer des caractères non imprimables spécifiques dans les fichiers volumineux de la ligne de commande Linux
- 27. Traversant td/tr avec le plus proche de jquery()
- 28. Problème utf8 avec les caractères suédois de la ligne de commande
- 29. Traduction en bloc du contenu de la table
- 30. Quelle est la meilleure façon de distribuer les outils de ligne de commande python?
Pour python3, l'objet 'module' n'a pas d'attribut 'maketrans'. Utilisez '" abc ".translate (str.maketrans (" abc "," def "))' directement! – SparkAndShine