概述
前面是搜索到的一些适合的方法,看一下尝试过多少几个代码。后面有总结。
1.先是批量重命名为数字1、2、3,注意这个代码要放在和文件夹一样的地方,不然会出错。就是dir(*.jpg)这句话是一定不能改路径的!
clc;
clear all;
files = dir('*.jpg');
len=length(files);
for i=1:len
oldname=files(i).name;
name=num2str(i);
newname=strcat(name,'.jpg');
command = ['rename' 32 oldname 32 newname];
status = dos(command);
if status == 0
disp([oldname, ' 已被重命名为 ', newname])
else
disp([oldname, ' 重命名失败!'])
end
end
2.再是为了读取顺序,重命名为001,002...
files = dir('*.jpg');
path1='C:UsersAdministrator.PC-20200404IITQDesktopCUHK StudentTrainphotos'; % 文件所在文件夹路径
path2='C:UsersAdministrator.PC-20200404IITQDesktopCUHK StudentTrainphotos2'; % 文件重命名后存放的文件夹路径
len=length(files);
for i=1:len
oldname = files(i).name;
old_path = [path1,oldname]; % 文件路径
im = imread(old_path);
% 修改文件名,4位数,不足前面加0
new_path = sprintf('%s%03d.jpg',path2,i); % 重命名后新文件路径
imwrite(im,new_path);
end
一步到位:
直接对文件夹按读取顺序进行重命名,但是注意它是按读取顺序重命名的哦,我暂时只需要这个功能哈哈
clc;
clear all;
files = dir('*.jpg');
len=length(files);
for i=1:len
oldname=files(i).name;
name=num2str(i,'%03d');
newname=strcat(name,'.jpg');
command = ['rename' 32 oldname 32 newname];
status = dos(command);
if status == 0
disp([oldname, ' 已被重命名为 ', newname])
else
disp([oldname, ' 重命名失败!'])
end
end
0509补充:按名字来补零的,今天用这个代码发现上面命名还是按读取顺序命名,下面这个代码是把原来98变为098的,然后重新排序自然就是按顺序的了
先变换名字补零,后面再用第一部分的代码可以重新编号1,2.。。。
clc;
clear all;
files = dir('*.jpg');
path1='./'; % 文件所在文件夹路径
path2='../Train2/'; % 文件重命名后存放的文件夹路径
len=length(files);
for i=1:len
oldname = files(i).name;
old_path = [path1,oldname]; % 文件路径
im = imread(old_path);
% 修改文件名字符串部分,3位数,不足前面加0
name0 = oldname(1:end-4);
name1=str2num(name0);
name2=num2str(name1,'%03d');
name = sprintf('%s%s',path2,name2);
new_path=strcat(name,'.jpg');% 重命名后新文件路径
imwrite(im,new_path);
end
最后
以上就是健壮期待为你收集整理的【Matlab】MATLAB进行批量重命名的全部内容,希望文章能够帮你解决【Matlab】MATLAB进行批量重命名所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复