我正在进行锻炼练习。所以我使用了这个功能
os.rename(file_name,file_name.translate(str.maketrans('','','0123456789'))
从文件名中删除数字。它在输出窗口上工作,但没有更改目标文件夹中的名称。救命啊!
答案 0 :(得分:1)
在Python 2中,听起来你可以这样做:
new_file_name = str.translate(file_name,None,str.maketrans('','','0123456789'))
os.rename(file_name, new_file_name)
在Python 3.1+中它是这样完成的:
new_file_name = file_name.translate(str.maketrans('','','0123456789'))
os.rename(file_name, new_file_name)
您也可以使用str.replace功能完成相同的操作。它将所有出现的一个字符替换为另一个字符。我相信以这种方式更换字符串更常见,但这只是因为我认为大多数人都没有听说过您找到的教程中的字符串翻译功能。我从来没有。
new_file_name = file_name
for char in '0123456789':
new_file_name = new_file_name.replace(char, "")
os.rename(file_name, new_file_name)
修改强>
根据您的评论,您将要执行以下操作:
def rename_files(folder):
#get file names from a folder
file_list = os.listdir(folder)
#for each file, rename filename to exclude any numbers
for file_name in file_list:
new_file_name = file_name.translate(str.maketrans('','','0123456789'))
os.rename(file_name, new_file_name)
print("renamed ", file_name, " to ", new_file_name)
rename_files('/Users/gazifah/Desktop/prank')