Effacer les filtres
Effacer les filtres

Unable to open .csv file ("Error using importdata (line 136) Unable to open file")

3 vues (au cours des 30 derniers jours)
papafos
papafos le 28 Avr 2014
Commenté : Image Analyst le 4 Mai 2014
Hello!
I am using a loop to open a big number of .csv files. I have applied it to a folder with .csv files and it worked. However,I apply it now to another folder with .csv files and it doesn't work.
The loop is the following:
dd = dir('C:\Users\...\csv');
n=numel(dd);
for k=3:n;
filename=dd(k).name;
A=importdata(filename);
...
end
Any idea why it is not working? Thank you in advance!

Réponses (2)

Azzi Abdelmalek
Azzi Abdelmalek le 28 Avr 2014
dd = dir('C:\Users\...\*.csv');
n=numel(dd);
for k=3:n;
filename=dd(k).name;
A{k}=importdata(filename);
...
end
  1 commentaire
papafos
papafos le 29 Avr 2014
Thank you for the response. Unfortunately this didn't work for me.

Connectez-vous pour commenter.


Image Analyst
Image Analyst le 29 Avr 2014
If the only difference is the folder and the particular csv files, then perhaps one is corrupted . Can you attach the one that it bombs on?
  8 commentaires
papafos
papafos le 4 Mai 2014
Modifié(e) : papafos le 4 Mai 2014
Finally,it worked for all the files with the following code.
dd = dir('C:\Users\...\csv');
n=numel(dd);
for k=3:n;
char1=dd(k).name;
char2='C:\Users\...\csv\';
filename=[char2 char1];
A=importdata(filename);
end
Thank you for the response.
Image Analyst
Image Analyst le 4 Mai 2014
Well what must have happened is that in the first case where it ran, you must have had the csv files in the current folder so you didn't need the folder name. In the second case the files were not in the current folder, where the m-file was, or even on the search path. So it didn't know where to find them. When you added
filename=[char2 char1];
now you told it the full filename and it could find them. The proper way, more robust way , to do this is:
folder = 'C:\Users\...\csv\';
if exist(folder, 'dir')
for k=3 : n
fullFileName= fullfile(folder, d(k).name);
if exist(fullFileName, 'file')
A=importdata(fullFileName);
end
end
else
errorMessage = sprintf('Error: folder does not exist:\n%s', folder);
uiwait(warndlg(errorMessage));
end
I suggest you make these changes to improve your code.

Connectez-vous pour commenter.

Catégories

En savoir plus sur File Operations dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by