how to rename a bunch of csv files in a folder
3 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Hello,
I have a folder containing several subfolders in which there are bunch of csv files.
I want to rename the csv files in this format. X_Y_subfolder's number_0file's number00. For example, the name of the files in first subfolder and second subfolders should be as following:
Subfolder1) X_Y_1_0100, X_Y_1_0200,...
Subfolder2) X_Y_2_0100, X_Y_2_0200,....
I appreciate any help.
4 commentaires
Jan
le 7 Jan 2019
Did you try to solve the problem by your own at first? Then please post the existing code and ask a specific question.
You need a dir command to obtain a list of subfolders, then a loop over the subfolders and another dir command to get the file names. Then sprintf will create the new file names and movefile renames the files.
Réponses (3)
Image Analyst
le 7 Jan 2019
Code is in the FAQ: click here
put a call to movefile() to rename the files.
ALso see attached code to recursivley go through all subfolders.
0 commentaires
Image Analyst
le 7 Jan 2019
Another way is to simply use the fileDatastore() function to get a list of all files in all subfolders. In fact, this may be the easiest way, then just loop over the filenames calling movefile().
0 commentaires
Sara
le 7 Jan 2019
2 commentaires
Stephen23
le 7 Jan 2019
It is better to avoid using cd, e.g.
D = 'mymainfolderpath';
S = dir(D);
N = setdiff({S([S.isdir]).name},{'.','..'});
for ii = 1:numel(N)
T = dir(fullfile(D,N{ii},'*.csv'));
for jj = 1:numel(T)
old = fullfile(D,N{ii},T(jj).name);
new = sprintf('X_Y_%d_0%d00.csv',ii,jj);
movefile(old,new)
end
end
Note that with sprintf you can easily change the format of the subfolder/file numbers, e.g. how many digits, leading zeros, etc.
Voir également
Catégories
En savoir plus sur File Operations dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!