Rename TIF files in a folder
3 次查看(过去 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!