Rename TIF files in a folder
조회 수: 2 (최근 30일)
이전 댓글 표시
Hi. I have 21841 TIF format files (in a folder) with names like: Camera_6_100fps_20240403_0956560001, and so to Camera_6_100fps_20240403_09565621841. I want to rename them to the format Camera60001 so on to Camera621841. I have tried a for loop but did not succeed. Can someone please help me with this.
Thanks.
댓글 수: 2
채택된 답변
Les Beckham
2024년 6월 4일
system('touch Camera_6_100fps_20240403_0956560001.tif'); % create files for testing
system('touch Camera_6_100fps_20240403_09565621841.tif');
files = dir('*.tif');
for iFile = 1:numel(files)
fn = files(iFile).name;
idx = find(fn == '_', 1, 'last') + 6; % + 6 to skip the timestamp
newfn = [strrep(fn(1:8), '_', '') fn((idx+1):end)]; % pull out the parts of the filename we want to keep
movefile(fn, newfn)
end
newfiles = dir('*.tif');
newfiles(:).name
추가 답변 (1개)
Michael VanMeter
2024년 6월 4일
You haven't provided enough detail on how you're attempting to rename these files, but a simple for loop using movefile should be sufficient. You can modify the dest (destination) variable as needed to get the desired naming convention.
files = dir('Camera_6*.tif');
[~, I] = sort([files.datenum]);
files = files(I);
fileNum = 60001;
for file = files'
src = fullfile(file.folder,file.name);
dest = fullfile(file.folder,['Camera',num2str(fileNum),'.tif']);
movefile(src, dest)
fileNum = fileNum + 1;
end
댓글 수: 2
Michael VanMeter
2024년 6월 4일
Slightly different approach using regular expression.
files = dir('*.tif');
exp = 'Camera_\d+_\d+fps_\d+_\d{5}(\d+)\.tif';
for file = files'
matches = regexp(file.name,exp,'tokens','once');
dest = ['Camera',matches{1},'.tif'];
movefile(file.name, dest)
end
참고 항목
카테고리
Help Center 및 File Exchange에서 File Operations에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!