在Python 3中翻译功能

时间:2017-01-17 23:20:31

标签: python function translate

我正在使用Python 3,我想将我的文件名翻译成没有数字。翻译功能似乎在Python 3中不起作用。如何将文件名翻译为没有数字?

这是不起作用的代码块:

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

谢谢

4 个答案:

答案 0 :(得分:33)

str.translate仍然存在,界面刚刚改变了一点:

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

答案 1 :(得分:5)

我使用ver3.6.1并且翻译不起作用。 strip()方法的工作原理如下:

file_name = 123hello.jpg

file_name.strip('123')

答案 2 :(得分:4)

.translate需要翻译表:

  

返回每个字符所在的字符串S的副本   映射       通过给定的转换表。该表必须实现       通过 getitem 查找/索引,例如字典或列表,       将Unicode序数映射到Unicode序数,字符串或无。如果       此操作引发LookupError,该字符保持不变。       映射到无的字符将被删除。

所以你可以这样做:

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

答案 3 :(得分:3)

仅从左侧删除数字

new_name = str.lstrip('1234567890')

仅从右侧删除数字

new_name = str.rstrip('123456780')

从左右移除数字

new_name = str.strip('1234567890')

删除所有号码

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

相关问题