有的时候,为了统一编程,需要统一文件夹下文件的格式和名称.当存在多个文件夹,且每个文件夹下文件数量巨大时,手动修改费时费力,让人心生烦闷,就需要自动化脚本自行处理. 本文以matlab下的编程为例,给出批量修改方案,欢迎大家批评指正!
clc
close all
clear all
datapath = './PublicDataDemo/'; % 指定位置 相对或绝对路径
%% 读取数据集
imgdirs = dir(datapath);
isSubDir = [imgdirs(:).isdir]; %# returns logical vector
imgdirs = {imgdirs(isSubDir).name}';
imgdirs(ismember(imgdirs,{'.','..'})) = []; % 得到指定位置下的所有文件夹
dirlens = length(imgdirs);
for i=1:dirlens
imgpath = strcat(datapath,imgdirs{i},'/*.tiff');
imglists = dir(imgpath); % 搜索指定格式的图像文件
imglens = length(imglists);
if(imglens > 0)
for j=1:imglens
imgname = strcat(datapath,imgdirs{i},'/',imglists(j).name);
%% 1. 修改文件格式
img = imread(imgname);
imwrite(img,strrep(imgname,'.tiff','.png')); % 用新名称替换旧名称
pause(500);
delete(imgname); % 给保存文件一定时间后,删除原格式文件
%% 2. 修改文件名称
% mark = 'AnyConv.com__'; % 待替换字符串
% if(contains(imgname,mark))
% img = imread(imgname);
% imwrite(img,strrep(imgname,mark,'newtype')); % 用新名称替换旧名称
% pause(500);
% delete(imgname); % 给保存文件一定时间后,删除原名称文件
% end
end
end
end