【发布时间】:2018-11-01 17:41:34
【问题描述】:
我正在开发一个脚本来重命名给定目录中的文件。
由于编程的迭代性质,我希望利用“if-else”方法来确保可以忽略已经正确标记的文件。
files_location = os.listdir(path)
new_entry_name = ['apple', 'orange', 'banana', 'plum', 'strawberry']
i = 0
for entry in files_location:
if entry == new_entry_name[i]:
i = i+1
if entry != new_entry_name[i]:
os.rename(os.path.join(path,entry), os.path.join(path,new_entry_name[i]))
i = i+1
else:
print('Run complete')
但是,我收到以下错误,这似乎表明我的 if-else 条件语句不允许我已经重命名的绕过条目。
正如我们在下面看到的,以前重命名的文件“cherry”似乎阻止了进一步的重命名:
[WinError 183] Cannot create a file when that file already exists: 'C:/Users/...\\cherry' -> 'C:/Users/...\\apple'
【问题讨论】:
-
您正试图将一个文件重命名为另一个现有文件。考虑打印所有
os.path.join(path,new_entry_name[i])并检查它们是否确实存在。 -
嗨 DyZ,听起来我需要在我的脚本中加入一个检查来绕过已经重命名的文件。您对我如何做到这一点有什么建议吗?
-
重命名前检查
if os.path.isfile(os.path.join(path,new_entry_name[i]))。
标签: python if-statement directory conditional rename