changing the name of multiple csv files in a folder
6 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
C.G.
am 15 Jan. 2021
Kommentiert: Stephen23
am 15 Jan. 2021
I have a folder containing 3000 csv files. All of these are named in the format: cor0.1 sc10 fc0.1_0.csv.
I want to change the name of all of these files to c0_1f0_1_0.csv.
Is there a way i can write a loop to do this for me?
0 Kommentare
Akzeptierte Antwort
Mathieu NOE
am 15 Jan. 2021
hello
this is a first attempt
I prefered to create the renamed copies in a separate folder
also my code will probably need some upgrade as I don't know how the numberring inside your filenames can evolve among your 3000 files
d = dir('*.csv')
dir_out = [cd '\out']
for ci = 1:numel(d)
filename = d(ci).name;
ind_und = strfind(filename,'_'); % search underscores
ind_dot = strfind(filename,'.'); % search dots
ind_f = strfind(filename,'f'); % search "f"
new_filename = [filename(1) filename(ind_dot(1)-1) '_' filename(ind_dot(1)+1) filename(ind_f ),...
filename(ind_dot(2)-1) '_' filename(ind_dot(2)+1) '_' filename(end-4:end)];
copyfile(filename,fullfile(dir_out,new_filename));
end
9 Kommentare
Stephen23
am 15 Jan. 2021
Rather than fragile indexing, it better to use fileparts to split the filename and file extension:
Weitere Antworten (1)
Matt Gaidica
am 15 Jan. 2021
Bearbeitet: Matt Gaidica
am 15 Jan. 2021
csvPath = '/path/to/files';
filelist = dir(fullfile(csvPath,'*.csv'));
for iFile = 1:numel(fileList)
thisFile = fullfile(csvPath,fileList(iFile).name);
movefile(thisFile, strrep(thisFile,'old','new'));
end
This is just psuedocode. I don't quite see how you're mapping the old filename to the new one, so I just placed a string replace function in the loop. If you need help on that piece, please post more details.
See:
6 Kommentare
Stephen23
am 15 Jan. 2021
This SPRINTF call does not use its inputs for anything:
new = sprintf('c0_1f0_1.csv',ii,jj)
Siehe auch
Kategorien
Mehr zu File Operations finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!