Python 翻译功能不工作

Python translate function not working

我有下面这个简单的函数,我尝试替换给定文件夹中文件名的任何数值。这是我目前所拥有的

import os

def decode_message():

    #this is stage one
    file_list = os.listdir(r"C:\TestFolder");
    #this is stage two
    print(file_list);
    os.chdir(r"C:\TestFolder")
    saved_path = os.getcwd();
    print("Current Working Directory : "+saved_path)
    for file_name in file_list:
            print("Old File Name : "+file_name);
            os.rename(file_name,file_name.translate(None,"0123456789"))
decode_message()

这是我可以列出文件名的地步,如下所示

但是一旦我使用翻译选项,它就会出现以下错误

有人可以帮忙吗?

您似乎只查看以数字开头的文件。然而,有些文件以 . 开头,例如 .DS_Store 文件,并且您的程序卡在那里,因为它没有考虑任何不以数字开头的文件。

file_name.translate(None,"0123456789")

您不能将 None 作为翻译 table。

https://www.tutorialspoint.com/python/string_translate.htm

解决方案 1:更新您的 python 版本:您现在使用的 python 2.4 大约有 12 年历史。如果你更新到 Python 2.7,你的 translate 就可以了。我没有可用的 python 2.4 版本,也找不到文档。另外:看看 和答案。完全一样的问题

解决方案 2:将数字字符替换为其他字符

例如

import re
os.rename(file_name, re.sub('\d+', '', file_name))

file_name2 = "".join(ch for ch in file_name if not ch.isdigit())
os.rename(file_name, file_name2)