批量重命名某个目录下的文件(去除前缀)

问题描述 投票:0回答:1

我在 Windows 上有一个文件夹,其中包含来自各种信使的图片,每个都有自己的格式。有些前缀是IMG_,有些是image-,而我自己的图片不使用任何前缀。我想编写一个脚本来删除这些和其他前缀。示例:

之前:

IMG_20220130_002520_211
之后:
20220130_002520_211

我觉得我已经接近解决方案了,只是出于某种原因,下面的代码得到了

FileNotFoundError

import os
path = "d:/MyName/Pictures/test"
files = os.listdir(path)
for i, filename in enumerate(files):
    if filename.startswith("IMG_"):
        print(filename.removeprefix("IMG_"))
        os.rename(filename, filename.removeprefix("IMG_"))

打印命令 print(filename.removeprefix("IMG_")) 工作得很好并且返回的正是我想要的。只是重命名部分不起作用。我在这里缺少什么?

PS:我搜索了很多讨论这个特定问题的线程,但我无法运行任何建议......

PPS:完成此剪辑后,我将为每个后续前缀添加 elif 条件。

python windows file-rename
1个回答
0
投票

我会用

pathlib
来实现:

from pathlib import Path

path = Path("d:/MyName/Pictures/test")

for item in path.iterdir():
    if item.name.startswith("IMG_"):
        print(item.name.removeprefix("IMG_"))
        item.rename(item.with_name(item.name.removeprefix("IMG_")))
© www.soinside.com 2019 - 2024. All rights reserved.