How to identify text files with zero value
    4 views (last 30 days)
  
       Show older comments
    
I have 10 text files and each text file has 9 rows and one column. In some text file total column is zero. Like
0
0
0
0
In other file there are zero values and numbers. Like
0
1
2
0
3
4
5
I want to extract text files with total column of zero values
0
0
0
0
0
If there is any way to extract the text files
0 Comments
Accepted Answer
  dpb
      
      
 on 17 Apr 2023
        
      Moved: dpb
      
      
 on 17 Apr 2023
  
      "...is any way to extract the text files[?]"
What do you mean by "extract", precisely?  What is the end result you're after; to  read the data files that actually contain one or more nonzero values, identify which files are those that contain only zero values, ...?
The answer to all of those will be based on simply reading each file in turn and testing the content something like
d=dir('*.txt');     % substitute suitable wildcard for your case to identify wanted files
for i=1:numel(d)
  data=readmatrix(fullfile(d(i).folder,d(i).name));
  if any(data)
    %...do what need to do for those with some nonzero values here
  else
    %...and all zeros here...
  end
end
7 Comments
  Walter Roberson
      
      
 on 19 Apr 2023
				
      Edited: Walter Roberson
      
      
 on 19 Apr 2023
  
			Old enough versions of MATLAB did not have the .folder property of dir() results.
%the below logic requires that the data file be just a list of numbers,
%one per line, with no headers. (Or if it has headers, the header line must
%start with '%' characters.)
%if this is not true, if there are header lines, the code would need to be
%modified
folder_to_search = 'C:\Users\DELL\Desktop\file';
folder_to_move_allzero = './all0';
folder_to_move_rest = './not0';
if ~isdir(folder_to_move_allzero); mkdir(folder_to_move_allzero); end
if ~isdir(folder_to_move_rest); mkdir(folder_to_move_rest); end
d = dir( fullfile(folder_to_search, '*.txt'));     % substitute suitable wildcard for your case to identify wanted files
for i=1:numel(d)
  thisfile = fullfile(folder_to_search,d(i).name);
  data = load(thisfile, '-ascii');
  if any(data)
    movefile(thisfile, folder_to_move_rest);
  else
    movefile(thisfile, folder_to_move_allzero);
  end
end
More Answers (0)
See Also
Categories
				Find more on Low-Level File I/O 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!

