- [jpgFiles{i},'.txt']
- sprintf('%s.txt',jpgFiles{i})
Reading files and writing with new extension
3 views (last 30 days)
Show older comments
I am trying to read a bunch of images in a directory and after some processing I want to use image file's names to write and save a new file same as the image file names. I am close but having issue to get rid of image file extension in the new file names. When I save new file (a .txt file) using the image file name, I also get image extension. I am pasting below the code I am using, please help me to figure this out.
This code gives me output in the form, e.g; img1.jpg.txt. What I want is img1.txt.
%Specify the folder where the file live
myFolder='C:\Users\UserName\Desktop\test';
cd(myFolder);
%Check to make sure the folder actually exists
if ~isfolder(myFolder)
errorMessage=sprintf('Error: the following folder does not exist:\n%s', myFolder);
uiwait(warndlg(errorMessage));
return;
end
% get the list of all files in the folder with desired file pattern/type.
filePattern=fullfile(myFolder, '*.jpg');
theFiles=dir(filePattern);
jpgFiles = cell(1, numel(theFiles));
for k=1:length(theFiles)
baseFileName=theFiles(k).name;
jpgFiles{k} = baseFileName;
end
A = [1 2 3; 4 5 6; 7 8 9];
for i=1:numel(theFiles)
txtFileName = fullfile(myFolder, sprintf([jpgFiles{i},'.txt']));
txtFileID = fopen(txtFileName, 'w');
fprintf(txtFileID, 'myHeader 1, myHeader 2 \n');
fprintf(txtFileID, '%d \n', A);
fclose(txtFileID);
end
2 Comments
Stephen23
on 6 Feb 2020
You mixed up two different approaches to adding a file extension to the name, which are:
Your code concatenates first and then inputs the complete filename as the format string to sprintf, which is not only completely superfluous but can change any special characters in the format string or throw errors for escaped characters that are not valid. Pick one of the above methods, but do NOT mix them together!
Accepted Answer
More Answers (0)
See Also
Categories
Find more on File Operations in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!