我正在使用Python 3,我想将我的文件名翻译成没有数字。翻译功能似乎在Python 3中不起作用。如何将文件名翻译为没有数字?
这是不起作用的代码块:
file_name = "123hello.jpg"
file_name.translate(None, "0123456789")
谢谢
答案 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'))