欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

文件重命名批量处理(Matlab)

发布时间:2023/12/13 37 豆豆
生活随笔 收集整理的这篇文章主要介绍了 文件重命名批量处理(Matlab) 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

第一种方法:eval 方法
该方法未对文件进行任何处理,直接重命名。文件不损失任何信息。

tic clear; close all; % edited by cmwang,if any problem,please reference the website %http://blog.csdn.net/jiandanjinxin/article/details/51513598%------------------------------------------------------------------------- % 读取文件方法1 srcDir=uigetdir('Choose source directory.'); %获得选择的文件夹 cd(srcDir); % 读取文件方法2 % % srcDir='.\FinalJPEG2048'; %获得选择的文件夹 % % cd(srcDir); %--------------------------------------------------------------------------% 带有时间标志的重命名文件夹年月日和时刻 savetime = fix(clock); savetimestr = num2str(savetime); savetimestr(isspace(savetimestr)) = []; %去除所有空格 Renamefullname = ['Rename' savetimestr];if exist(Renamefullname,'dir') == 0mkdir (Renamefullname) elsecd Renamefullnamedelete *cd .. end% 复制重命名文件夹到带有时间标志的文件夹中 copyfile('*.jpg',Renamefullname)cd(Renamefullname); allnames=struct2cell(dir('*.jpg')); %只处理8位的jpg文件 [k,len]=size(allnames); %获得jpg文件的个数for ii=1:len%逐次取出文件name=allnames{1,ii};%----------------------------------------------------------------------% 重命名规则为原始图像中的数值加上100,你可在此区域添加你自己的重命名规则newnameformat =name(end-3:end);numberstr1 = name(end-6:end-4);number = str2num(numberstr1);number2 =num2str(number+100);newname = [number2 newnameformat];%----------------------------------------------------------------------% 关于renameStr一定要注意里面的空格和双引号renameStr = ['!rename', ' "',name,'" ',newname];eval(renameStr) end cd .. close all; Renametime = toc;disp('------------------------------------------------------------------') disp(['The Rename time is ', num2str(Renametime), 's']) disp('------------------------------------------------------------------')

第二种方法: imwrite
该方法对文件进行了处理在另存为,即重命名。但是文件有可能会损失信息,具体信息可对比重命名前后文件的大小。

tic clear; close all; % edited by cmwang,if any problem,please reference the website %http://blog.csdn.net/jiandanjinxin/article/details/51513598%------------------------------------------------------------------------- % 读取文件方法1 srcDir=uigetdir('Choose source directory.'); %获得选择的文件夹 cd(srcDir); allnames=struct2cell(dir('*.jpg')); %只处理8位的jpg文件 [k,len]=size(allnames); %获得jpg文件的个数% 读取文件方法2 % % srcDir='.\FinalJPEG2048'; %获得选择的文件夹 % % cd(srcDir); %--------------------------------------------------------------------------% 带有时间标志的重命名文件夹年月日和时刻 savetime = fix(clock); savetimestr = num2str(savetime); savetimestr(isspace(savetimestr)) = []; %去除所有空格 Renamefullname = ['Rename' savetimestr];if exist(Renamefullname,'dir') == 0mkdir (Renamefullname) elsecd Renamefullnamedelete *cd .. endfor ii=1:len%逐次取出文件name=allnames{1,ii};I=imread(name); %读取文件%-------------------------------------------------------------------------%然后在此处添加你的图像处理程序即可if size(I,3)==3;A = rgb2gray(I);elseA = I;end%-------------------------------------------------------------------------%----------------------------------------------------------------------% 重命名规则为原始图像中的数值加上100,你可在此区域添加你自己的重命名规则newnameformat =name(end-3:end);numberstr1 = name(end-6:end-4);number = str2num(numberstr1);number2 =num2str(number+100);newname = [number2 newnameformat];%----------------------------------------------------------------------% 注意imwrite中的空格imwrite(A,['.\' Renamefullname '\',newname]) end close all; Renametime = toc;disp('------------------------------------------------------------------') disp(['The Rename time is ', num2str(Renametime), 's']) disp('------------------------------------------------------------------')

总结

以上是生活随笔为你收集整理的文件重命名批量处理(Matlab)的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。