问题描述
我在一个具有不同名称的文件夹中有1000多个JPG图像。我想将图像重命名为0.JPG,1.jpg,2.jpg ...
The system cannot find the file specified: 'IMG_0102.JPG' -> '1.JPG'
以下代码是在此链接中找到的代码之一:Rename files sequentially in python
import os
_src = "C:\\Users\\sazid\\Desktop\\snake"
_ext = ".JPG"
for i,filename in enumerate(os.listdir(_src)):
if filename.endswith(_ext):
os.rename(filename,str(i)+_ext)
解决方法
os.listdir
仅返回文件名,不包含目录名。重命名时需要包括它。尝试这样的事情:
import os
_src = "C:\\Users\\sazid\\Desktop\\snake"
_ext = ".JPG"
for i,filename in enumerate(os.listdir(_src)):
if filename.endswith(_ext):
src_file = os.path.join(_src,filename)
dst_file = os.path.join(_src,str(i)+_ext)
os.rename(src_file,dst_file)
,
只需使用$Matches
即可避免头痛
使用glob,您的代码变成这样:
glob
这段代码中的 import os
from glob import glob
target_dir = './some/dir/with/data'
for i,p in enumerate(glob(f'{target_dir}/*.jpg')):
os.rename(p,f'{target_dir}/{i}.jpg')
为您提供了扩展名为glob()
的文件的找到文件路径的列表,因此,.jpg
,{{3}的*.jpg
模式}