У меня есть несколько текстовых файлов без каких-либо последовательно:Matlab: переименование файлов в последовательном порядке
010010.txt 010030.txt 010070.txt
Как я могу изменить имена файлов на:
text01.txt text02.txt ....
Можно не чтобы перезаписать старый каталог, но создать новый каталог
Я использовал следующий скрипт, но в результате он работает нормально, но он идет от text001.txt
до text021.txt
. затем text041.txt
любая идея?
directory = 'C:\test\'; %//' Directory with txt files
filePattern = fullfile(directory, '*.txt'); %//' files pattern with absolute paths
old_filename = cellstr(ls(filePattern)) %// Get the filenames
file_ID = strrep(strrep(old_filename,'file',''),'.txt','') %// Get numbers associated with each file
file_ID_doublearr = str2double(file_ID)
file_ID_doublearr = file_ID_doublearr - min(file_ID_doublearr)+1
file_ID = strtrim(cellstr(num2str(file_ID_doublearr)))
str_zeros = arrayfun(@(t) repmat('0',1,t), 4-cellfun(@numel,file_ID),'uni',0) %// Get zeros string to be pre-appended to each filename
new_filename = strcat('file',str_zeros,file_ID,'.txt') %// Generate new filenames
cellfun(@(m1,m2) movefile(m1,m2),fullfile(directory,old_filename),fullfile(directory,new_filename)) %// Finally rename files with the absolute paths
Это можно сделать, но не ожидайте, что мы сделаем для вас всю работу. Покажите свои попытки и задайте конкретные вопросы о том, где вы застряли –
Итак, я просто добавил скрипт, который я использовал, но он перескакивает с text001.txt в text021.txt и не знает почему. – Tomas