import os
def rename_files():
# (1) get file names from a folder
file_list = os.listdir(r"C:\Users\USEER\Desktop\Udacity\Udacity - Programming Foundation with Python\Project\prank\prank")
# print(file_list)
saved_path = os.getcwd()
print("Current Working Directory is " + saved_path)
os.chdir(r"C:\Users\USEER\Desktop\Udacity\Udacity - Programming Foundation with Python\Project\prank\prank")
# (2) for each file, rename file name
for file_name in file_list:
print("Old Name - " + file_name)
print("New Name - " + file_name.translate("0123456789"))
os.rename(file_name, file_name.translate("0123456789"))
os.chdir(saved_path)
rename_files()
上面的代码没有通过删除整数来重命名文件。有人能帮忙吗?(Python3倍)
在Python 3中,String.translate已不存在。因此您需要使用str.translate。它需要'str.maketrans',它通常创建一个翻译表,并提供前两个参数(本例中不需要),第三个参数提供要剥离的字符。
这条线应该有预期的效果。。。
以前的建议使用了.strip(),但是在这种情况下,由于数字与文件名混合在一起(不是在文件名之前或之后),我认为这是行不通的,另外一个使用的正则表达式是完全有效的,但是在这个特殊的Udacity课程的上下文中,translate是建议的解决方案。
以下是maketrans的文档: [https://docs.python.org/3/library/stdtypes.html#str.maketrans][1]
问题是你的翻译功能什么也做不了。有更好的选择,但如果您想使用translate,那么正确的语法是:
相关问题 更多 >
编程相关推荐