卡在 python 3 中的 string.translate 函数

Stuck with string.translate function in python 3

import os

def rename_files():
    #(1) get file names from a folder
    file_list = os.listdir("my_directory")
    #print(file_list)
    os.chdir("my_directory")
    saved_path = os.getcwd()
    print("Current work directory is " + saved_path)
    os.getcwd()
    #(2) for each file, rename filename
    for file_name in file_list:
        os.rename(file_name, file_name.translate(None, "0123456789"))
    os.chdir("my_directory")

rename_files()

之后出现错误:

TypeError: translate() takes exactly one argument (2 given)

str.translate in python 3.x 只接受一个参数,即翻译 table.

来自docs

str.translate(table)

Return a copy of the string in which each character has been mapped through the given translation table

您可以使用 str.maketrans

创建所需的翻译 table
table = str.maketrans(dict.fromkeys('0123456789'))
file_name.translate(table)