主要针对数据库进行重命名,采用MATLAB代码进行脚本的编写,所使用的数据库路径如下(共792个子文件),每个子文件有数量不定的图片,对图片进行重命名(针对其他类型文件只需将jpg进行修改如用txt替换等等):
具体代码如下,所使用的语言为MATLAB:
close all
clc;
path = 'D:\虹膜数据库\WLB_Gabor\CASIA-Lamp\00'; %由于子文件命名为有序编码,因此设定一个可变路径
subpath = '00';
for i=1:792 %子文件数量,通过i确定子文件
if i>=10
path = 'D:\虹膜数据库\WLB_Gabor\CASIA-Lamp\0';
subpath = '0';
end
if i>=100
path = 'D:\虹膜数据库\WLB_Gabor\CASIA-Lamp\';
subpath = '';
end
filepath = strcat(path,num2str(i),'\','*.jpg'); %该子文件的所有jpg图片
files = dir(filepath); %文件夹存放的绝对路径
len = length(files); %子文件夹下的图片数量
FP = strcat(path,num2str(i)); %子文件夹路径
cd(FP); %进入子文件夹,缺少这个会出现找不到文件的情况,其原因是重命名操作需在
%图片所在的文件夹下进行
for j=1:len %对子文件夹下的所有图片进行重命名
oldname = files(j).name;
a = sprintf('%03d',j);
temp = num2str(a);
idex = char('.jpg'); %idex字符型表达
newname = strcat(temp,idex); %newname=j.jpg (字符型)
command = ['rename',32,oldname,32,newname]; %rename oldname newname在操作系统中为对文件进行重命名
status = dos(command); %调用dos命令,执行成功 status值为0
if status == 0
disp([oldname,'重命名',newname]);
else
disp([oldname,'命名失败']);
end
end
end
注意代码中的cd命令不可少,若只需对单个文件夹里的数据进行重新命名则代码如下:
close all
clc;
path = 'D:\虹膜数据库\WLB_Gabor\CASIA-Lamp\001'
filepath = strcat(path,'\','*.jpg');
files = dir(filepath);
len = length(files);
cd(path);
for j=1:len
oldname = files(j).name;
a = sprintf('%03d',j);
temp = num2str(a);
idex = char('.jpg');
newname = strcat(temp,idex);
command = ['rename',32,oldname,32,newname];
status = dos(command);
if status == 0
disp([oldname,'重命名',newname]);
else
disp([oldname,'命名失败']);
end
end
缺少cd命令(进入文件夹执行),会出现如下情况: