我在 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 条件。
我会用
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_")))