在python 3中坚持使用string.translate函数

时间:2017-06-17 23:02:59

标签: python-3.4

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()只接受一个参数(给定2个)

1 个答案:

答案 0 :(得分:1)

python 3.x中的

str.translate只接受一个参数,即转换表。

来自docs

  

str.translate(table)

     

返回已映射每个字符的字符串的副本   通过给定的翻译table

您可以使用str.maketrans

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