在Python 3中翻译功能

Dea*_*ncy 19 python function translate

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

这是不起作用的代码块:

file_name = "123hello.jpg"
file_name.translate(None, "0123456789")
Run Code Online (Sandbox Code Playgroud)

谢谢

wim*_*wim 39

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

>>> table = str.maketrans(dict.fromkeys('0123456789'))
>>> '123hello.jpg'.translate(table)
'hello.jpg'
Run Code Online (Sandbox Code Playgroud)


jua*_*aga 6

.translate 需要一个翻译表:

返回字符串S的副本,其中每个字符都已通过给定的转换表进行映射。该表必须通过getitem实现查找/索引,例如字典或列表,将Unicode序号映射到Unicode序号,字符串或None。如果此操作引发LookupError,则字符保持不变。映射为“无”的字符将被删除。

因此,您可以执行以下操作:

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


小智 5

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

file_name = 123hello.jpg

file_name.strip('123')
Run Code Online (Sandbox Code Playgroud)

  • @nonagon`>>>“ 1个苹果,2个橙子,3头猪” .strip(“ 123”)`产生''苹果,2个橙子,3头猪'`这在一般情况下不起作用。他想从整个文件名中删除数字,而不仅仅是在开始时。这解决了一个示例情况,但没有解决问题。 (2认同)