reading a file name from a list of files in a text file line by line and open the files one at a time

10 次查看(过去 30 天)
I have a list of files in a summary text file. Each line is a name with no spaces. I want to read the files in, one at a time, open one, get input from that file, then move on to the next. I have tried fgetl, fgets, and textscan. fgetl returns the correct file name, but fed into an fopen file, it will no open the file. fgets returns the name with a carraige return (not what I want) textscan returns all of the summary text file names as a single input. All of the files exist in the same directory as the summary textfile. Examples are
Sumary test file:
inputfile1
inputfile2
inputfile50
Each file has the same number of ascii text lines.
fid1=fopen('Summary test file')
for 1;1:3
aline=fgetl(fid1)
aline % prints out correct name as text with no spaces)
fid2=fopen(aline) % this wont open, gives fid= -1
end
How do I do this?
  8 个评论
richg
richg 2020-10-28
here is the dir list
10/28/2020 01:51 AM <DIR> .
10/28/2020 01:51 AM <DIR> ..
10/28/2020 01:51 AM 0 dir_list
10/27/2020 10:12 PM 52,544 dumpH_0.back
10/26/2020 11:24 PM 52,544 dumpH_0gpa_100K.10100.custom
10/26/2020 11:24 PM 20,910 dumpH_0gpa_100K.10100.custom.gz
10/26/2020 11:24 PM 52,564 dumpH_0gpa_100K.10120.custom
10/26/2020 11:24 PM 52,574 dumpH_0gpa_100K.10140.custom
10/26/2020 11:24 PM 52,528 dumpH_0gpa_100K.10160.custom
10/26/2020 11:24 PM 52,531 dumpH_0gpa_100K.10180.custom
10/27/2020 10:15 PM 20,910 dumpH_0gpa_100K.custom.zip
10/27/2020 10:18 PM 52,544 dump_0gpa_100K.10100.custom.txt.txt
10/27/2020 07:37 PM 145 filesin
10/27/2020 10:19 PM 145 filesin.txt
10/27/2020 07:09 PM 95 test_text1
13 File(s) 410,034 bytes
2 Dir(s) 1,346,096,627,712 bytes free
and here is the filesin file:
dumpH_0gpa_100K.10100.custom
dumpH_0gpa_100K.10120.custom
dumpH_0gpa_100K.10140.custom
dumpH_0gpa_100K.10160.custom
dumpH_0gpa_100K.10180.custom

请先登录,再进行评论。

采纳的回答

Mathieu NOE
Mathieu NOE 2020-10-28
hi
you can try this - I tested it on dummys file. just found that my matlab is pretty slow for such simple tasks....
% read files listed in filesin.txt file
fileID = fopen('filesin.txt');
C = textscan(fileID,'%s');
fclose(fileID);
celldisp(C)
numfiles = numel(C{1});
mydata = cell(1, numfiles);
for k = 1:numfiles
myfilename = char(C{1}{k});
mydata{k} = importdata(myfilename);
end
celldisp(mydata)
  6 个评论
Stephen23
Stephen23 2020-10-29
Rather than using string concatenation, the recommended (and correct tool for the task) is to use fullfile:
fileinFull = fullfile(d1,ailine)
richg
richg 2020-10-29
Thanks - I see it. It allows me to move form Windows to LINUX and back. I do that a lot while writing and debugging.

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Environment and Settings 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by