2016-09-20 13 views
0

Ich versuche, eine Reihe von .NC-Dateien durchlaufen, um ein wenig Code auszuführen. Das Testskript unten druckt die ersten Dateinamen in dem Verzeichnis, aber wenn ich ncfile = netCDF4.Dataset(fname, 'r') verwenden erhalte ich die FehlerPython os.walk netCDF4 funktioniert nicht

File "netCDF4\_netCDF4.pyx", 
line 1795, in netCDF4._netCDF4.Dataset.__init__ 
(netCDF4\_netCDF4.c:12278) 
    RuntimeError: No such file or directory 

Ist dies ein Kompatibilitätsproblem mit os.walk und netCDF4 oder ist es ein einfacher Fehler, den ich machen werde?

import os 
import netCDF4 

for root, dirs, files in os.walk('E:\satellite .nc data\ENVISAT2006'): 
    for fname in files: 
     print fname # works up to here and without line below it prints all filenames 
     ncfile = netCDF4.Dataset(fname, 'r') 

Antwort

1

Es scheint, es ist ein einfaches Problem des Müssens den Pfad und Verzeichnis in

ncfile = netCDF4.Dataset(fname, 'r')

so war habe ich es ersetzt mit

ncfile = netCDF4.Dataset(os.path.join(fdir,fname), 'r')

und angegeben fdir außerhalb der Schleife. Der Einfachheit halber habe ich os.walk durch os.listdir ersetzt, da ich nicht durch einen Verzeichnisbaum gehen muss.

import os 
import netCDF4 
import numpy as np 
from math import pi 
from numpy import cos, sin 

fdir = 'E:\satellite .nc data\ENVISAT2006' 
for fname in os.listdir('E:\satellite .nc data\ENVISAT2006'): 
#os.walk only needed if going through all of the files in a directory tree 
    #for fname in files: 
    print fname 
    ncfile = netCDF4.Dataset(os.path.join(fdir,fname), 'r')