Writting multiple files with fopen 'w'
4 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Cristian Martin
el 20 de Mayo de 2022
Comentada: Voss
el 20 de Mayo de 2022
fileID = fopen('text\test.txt','w');
fprintf(fileID,'Comments:');
fclose(fileID);
Hi,
What can I do to not overwrite the previous file
There is a way for every time I run the script to make another file and not rewritte the old one, like test1.txt, test2.txt and so on?
Respuesta aceptada
Voss
el 20 de Mayo de 2022
Here's a function (get_unused_file_name) you can use for this purpose. It takes a file name and check if that file already exists. If it does, the function appends '1' to the name and checks if that exists. If it does, it tries '2', and so on until it gets one that doesn't already exist, and returns that unused file name.
Here's a demonstration of it:
fn_orig = fullfile(pwd(),'text','test.txt') % file name to try
mkdir('text')
% calling the function 4 times
for ii = 1:4
fn = get_unused_file_name(fn_orig)
% create the file so that next time around
% this file name is already taken:
fid = fopen(fn,'w');
fclose(fid);
end
function file_name = get_unused_file_name(file_name)
[pn,fn,ext] = fileparts(file_name);
ii = 0;
while isfile(file_name)
ii = ii+1;
file_name = fullfile(pn,sprintf('%s%d%s',fn,ii,ext));
end
end
7 comentarios
Voss
el 20 de Mayo de 2022
You're welcome! Sorry about the snag with isfile, but I'm glad it's working now!
Más respuestas (0)
Ver también
Categorías
Más información sobre Environment and Settings en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!