How to replace a certain part of file name

6 visualizaciones (últimos 30 días)
Raja Bilal Rsb
Raja Bilal Rsb el 25 de Jul. de 2018
Comentada: Raja Bilal Rsb el 26 de Jul. de 2018
I am writing a small code to that goes through the overall directory scans for all files, and if any image file have not same name pattern it will change it.
loc = 'File Directory';
flist = dir([loc '*.png']);
for ii = 1:1:length(flist)
fname = flist(ii).name;
[~, fn, xt] = fileparts(fname);
img = imread([loc fname]);
idxs = strfind(fn, '_');
label = str2double(fn(idxs(end)+1:end));
if label ~= 0
label= 0;
ffname = fullfile(loc, num2str(label), fname); % full file name
imwrite(img, ffname);
continue;
end
My all files have file names like "m_7_13_10" with 10 being constant at the end. I want to change the 10 at end to 0. File should be in the same directory. What I am missing any one?

Respuestas (1)

Guillaume
Guillaume el 25 de Jul. de 2018
Editada: Guillaume el 26 de Jul. de 2018
Loading the images and saving them back again just to change a filename is a big waste of time. Just rename the files!
An efficient way to do that:
loc = ...
flist = dir(fullfile(loc, '*.png'));
torename = endsWith({flist.name}, '_10.png');
for file = flist(torename)'
movefile(fullfile(loc, file.name), fullfile(loc, regexprep(file.name, '_10\.png', '_0.png', 'preservecase')));
end
  3 comentarios
Guillaume
Guillaume el 26 de Jul. de 2018
Ok, if you want to load the image and rename them, it's more or less the same:
loc = ...
flist = dir(fullfile(loc, '*.png'));
torename = endsWith({flist.name}, '_10.png');
for file = flist(torename)'
img = imread(fullfile(loc, file.name);
%... further processing
imwrite(img, regexprep(file.name, '_10\.png', '_0.png', 'preservecase'));
end
Raja Bilal Rsb
Raja Bilal Rsb el 26 de Jul. de 2018
The code is still missing the important thing that not every time last part will not be same. it can be _10,_9,_8 from 0 to 10 can be any. It should convert all these to _0, and than convert the file to gray-scale and crop it to 28*28.

Iniciar sesión para comentar.

Categorías

Más información sobre Install Products en Help Center y File Exchange.

Productos


Versión

R2017a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by