Функция перевода в Python 3

Я использую Python 3, и я хочу перевести мои имена файлов, чтобы не иметь чисел. Функция перевода не работает в Python 3. Как я могу перевести имена файлов, чтобы они не имели чисел?

Это блок кода, который не работает:

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

Спасибо

Ответ 1

str.translate все еще существует, интерфейс немного изменился:

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

Ответ 2

Я использую ver3.6.1, и перевод не работает. Что такое метод strip():

file_name = 123hello.jpg

file_name.strip('123')

Ответ 3

.translate принимает таблицу трансляции:

Верните копию строки S, в которой каждый символ был сопоставляются     через данную таблицу перевода. Таблица должна реализовывать     поиск/индексирование через getitem, например словарь или список,     сопоставление ордеров Unicode с порядковыми номерами Unicode, строками или None. Если     эта операция вызывает LookupError, символ остается нетронутым.     Символы, сопоставленные None, удаляются.

Итак, вы можете сделать что-то вроде:

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

Ответ 4

Удалить только цифры слева

new_name = str.lstrip('1234567890')

Удалить только цифры справа

new_name = str.rstrip('123456780')

Удалить номер слева и справа

new_name = str.strip('1234567890')

Удалить все номера

new_name = str.translate(str.maketrans('', '', '1234567890'))