Peter Hansen wrote: > k r fry wrote: >> Hi, I am new to this list and also programming with python. >> I have an error: oserror [errno 20] not a directory "katiescint.py" >> The piece of code causing the problem is: >> [code] >> >> for subdir in os.listdir(DATADIR): #loop through list of >> strings >> >> file=FITS.Read(DATADIR+'/'+subdir+'/flux.fits') #opens >> flux.fits file and reads > > os.listdir() returns a list of all files and directories inside the > directory specified (DATADIR), so you can't assume that "subdir" is > always going to be a directory. Use os.path.isdir() to confirm that it > is and ignore those items for which that function returns False.
I'd guess you might want to go with something like: for root, dirs, files in os.walk(DATADIR): if 'flux.fits' in files: file = FITS.Read(os.path.join(root, 'flux.fits')) read up on: os.path.join and os.walk The previous code will do lots of recursive walking in a deeply nested directory structure. If you only want to look at single-level subdirs, you could either do: root, dirs, files = iter(os.walk(DATADIR)).next() for subdir in dirs: file = FITS.Read(os.path.join(root, subdir, 'flux.fits')) or: for root, dirs, files in os.walk(DATADIR): if 'flux.fits' in files: file = FITS.Read(os.path.join(root, 'flux.fits')) if root != DATADIR: del dirs[:] # Stop recursing after the first descent) depending on whether you know 'flux.fits' should be there or you only want to work on subdirs where it is in the directory. -Scott David Daniels [EMAIL PROTECTED] -- http://mail.python.org/mailman/listinfo/python-list