python - 当我使用这个 python 脚本重命名文件时,为什么文件会被删除?
问题描述
我创建了这个程序,使用以下代码将我所有的随机壁纸名称重命名为wallpaper1
,wallpaper2
依此类推:
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
但是每次我运行代码时,一半文件都会被重命名,其他文件会被永久删除。
解决方案
(在这里建议一个相当小的变化,但作为一个答案,因为很难通过评论明确地表明它。)
插入检查是否存在新文件名,如果存在,则继续增加数字,直到得到不存在的数字。这将防止覆盖之前运行相同脚本时已重命名的文件。
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
推荐阅读
- regex - 系统日志上的正则表达式单词匹配失败
- python-3.x - 矢量化 groupby pandas
- c# - AcquireTokenSilentAsync 无法正常工作,因为 ConfidentialClientApplication 没有用户
- powershell - 在管道属性 powershell 上做数学
- regex - 如何在javascript正则表达式中匹配非单词+单词边界
- javascript - 在滚动时固定/修复 Vanilla Javascript 中的多个元素
- python - 将python嵌套数组中的每个元素除以一个整数
- javascript - 谷歌地图 api 密钥问题
- regex - 提取可能嵌套的花括号之间的代码
- visual-studio-code - 如何向 VS Code 添加新语言?