卡在 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)
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 = str.maketrans(dict.fromkeys('0123456789'))
file_name.translate(table)