web-dev-qa-db-fra.com

Traduire la fonction en Python 3

J'utilise Python 3 et je souhaite traduire mes noms de fichiers sans numéros. La fonction de traduction ne semble pas fonctionner dans Python 3. Comment puis-je traduire les noms de fichiers sans numéros?

Ceci est le bloc de code qui ne fonctionne pas:

file_name = "123hello.jpg"
file_name.translate(None, "0123456789")

Merci

17
Dean Clancy

str.translate est toujours là, l’interface vient de changer un peu:

>>> table = str.maketrans(dict.fromkeys('0123456789'))
>>> '123hello.jpg'.translate(table)
'hello.jpg'
34
wim

.translate prend une table de traduction:

Retourne une copie de la chaîne S dans laquelle chaque caractère a été mappé dans la table de traduction donnée. La table doit implémenter la recherche/l'indexation via getitem, par exemple un dictionnaire ou une liste, mappant des ordinaux Unicode sur des ordinaux Unicode, des chaînes ou Aucune. Si cette opération soulève LookupError, le caractère reste inchangé. Les caractères associés à Aucun sont supprimés.

Donc, vous pouvez faire quelque chose comme:

>>> file_name = "123hello.jpg"
>>> file_name.translate({ord(c):'' for c in "1234567890"})
'hello.jpg'
>>>
5
juanpa.arrivillaga

J'utilise ver3.6.1 et la traduction n'a pas fonctionné. Qu'est-ce qui a fonctionné, c'est la méthode strip () comme suit:

file_name = 123hello.jpg

file_name.strip('123')
5
Mativo

Supprimer uniquement les numéros de gauche

new_name = str.lstrip('1234567890')

Supprimer uniquement les numéros de droite

new_name = str.rstrip('123456780')

Supprimer le numéro à gauche et à droite

new_name = str.strip('1234567890')

Supprimer tous les chiffres

new_name = str.translate(str.maketrans('', '', '1234567890'))
3
udit sharma