Ответ 1
str.translate
все еще существует, интерфейс немного изменился:
>>> table = str.maketrans(dict.fromkeys('0123456789'))
>>> '123hello.jpg'.translate(table)
'hello.jpg'
Я использую Python 3, и я хочу перевести мои имена файлов, чтобы не иметь чисел. Функция перевода не работает в Python 3. Как я могу перевести имена файлов, чтобы они не имели чисел?
Это блок кода, который не работает:
file_name = "123hello.jpg"
file_name.translate(None, "0123456789")
Спасибо
str.translate
все еще существует, интерфейс немного изменился:
>>> table = str.maketrans(dict.fromkeys('0123456789'))
>>> '123hello.jpg'.translate(table)
'hello.jpg'
Я использую ver3.6.1, и перевод не работает. Что такое метод strip():
file_name = 123hello.jpg
file_name.strip('123')
.translate
принимает таблицу трансляции:
Верните копию строки S, в которой каждый символ был сопоставляются через данную таблицу перевода. Таблица должна реализовывать поиск/индексирование через getitem, например словарь или список, сопоставление ордеров Unicode с порядковыми номерами Unicode, строками или None. Если эта операция вызывает LookupError, символ остается нетронутым. Символы, сопоставленные None, удаляются.
Итак, вы можете сделать что-то вроде:
>>> file_name = "123hello.jpg"
>>> file_name.translate({ord(c):'' for c in "1234567890"})
'hello.jpg'
>>>
Удалить только цифры слева
new_name = str.lstrip('1234567890')
Удалить только цифры справа
new_name = str.rstrip('123456780')
Удалить номер слева и справа
new_name = str.strip('1234567890')
Удалить все номера
new_name = str.translate(str.maketrans('', '', '1234567890'))