首页 > 解决方案 > 当我使用这个 python 脚本重命名文件时,为什么文件会被删除?

问题描述

我创建了这个程序,使用以下代码将我所有的随机壁纸名称重命名为wallpaper1wallpaper2依此类推:

import os
path = os.chdir("/home/samipkarki/Pictures/Wallpapers")
value = 1
for file in os.listdir("path"):
    new_filename = f'wallpaper{value}.jpg'
    os.rename(file, new_filename)
    value += 1

但是每次我运行代码时,一半文件都会被重命名,其他文件会被永久删除。

标签: pythonpython-3.xrenamechdirlistdir

解决方案


(在这里建议一个相当小的变化,但作为一个答案,因为很难通过评论明确地表明它。)

插入检查是否存在新文件名,如果存在,则继续增加数字,直到得到不存在的数字。这将防止覆盖之前运行相同脚本时已重命名的文件。

import os
path = os.chdir("/home/samipkarki/Pictures/Wallpapers")
value = 1
for file in os.listdir("path"):
    new_filename = f'wallpaper{value}.jpg'
    while os.path.exists(new_filename):
        value += 1
        new_filename = f'wallpaper{value}.jpg'
    os.rename(file, new_filename)
    value += 1

推荐阅读