# @author: bryan newbold # @email: bnewbold@mit.edu # @date: nov 2006 import shutil, os, scipy, pylab; def dothing(arg,thisdir,files,prefix="d"): global all_data for fname in files: if os.path.isfile(thisdir + '/' + fname): if (fname.find('.') == -1): try: dat = pylab.load(thisdir + '/' + fname) if(fname.split('.')[0][0].isalpha()): all_data[fname.split('.')[0]] = dat else: all_data[prefix + fname.split('.')[0]] = dat print "Loaded (no type): %s/%s" % (thisdir,fname); except: print "Tried, but didn't load (no type): %s/%s" % (thisdir,fname); elif fname.endswith('.TKA'): try: dat = pylab.load(thisdir + '/' + fname) #print all_data if(fname.split('.')[0][0].isalpha()): all_data[fname.split('.')[0]] = dat else: all_data[prefix + fname.split('.')[0]] = dat print "Loaded .TKA: %s/%s" % (thisdir,fname); #print "all_data has %d" % len(all_data) except: print "Tried, but didn't load .TKA: %s/%s" % (thisdir,fname); elif fname.endswith('.txt'): try: dat = pylab.load(thisdir + '/' + fname,skiprows=1) #print all_data if(fname.split('.')[0][0].isalpha()): all_data[fname.split('.')[0]] = dat print "Loaded .txt: %s/%s as %s" % (thisdir,fname, fname.split('.')[0]); else: all_data[prefix + fname.split('.')[0]] = dat print "Loaded .txt: %s/%s as %s" % (thisdir,fname, prefix + fname.split('.')[0]); #print "all_data has %d" % len(all_data) except: print "Tried, but didn't load .txt: %s/%s" % (thisdir,fname); elif fname.endswith('.Spe!!!'): # try: dat = pylab.load(thisdir+'/'+fname,skiprows=12); # also have to skip 15 from the end... print "trying: " + fname; # dat = scipy.io.read_array(thisdir + '/' + fname,lines=((14,-40,),)) # print len(dat) # print dat dat = scipy.array(dat); if(fname.split('.')[0][0].isalpha()): all_data[fname.split('.')[0]] = dat else: all_data[prefix + fname.split('.')[0]] = dat print "Loaded .Spe: %s/%s" % (thisdir,fname); # except: print "Tried, but didn't load .Spe: %s/%s" % (thisdir,fname); else: print "Didn't load %s/%s" % (thisdir,fname); else: print "Wasn't a file: %s/%s" % (thisdir,fname); def import_data(outfile='data.pydat',root='.',saveit=True,recurse=False,prefix="d"): """Imports all that yummah files...""" global all_data if saveit: ofile = file(outfile,'w'); ofile.close() all_data = {} if recurse: os.path.walk(root,dothing,'') else: dothing('',root,os.listdir(os.getcwd())); if saveit: print "Saving %d objects to %s" % (len(all_data), outfile); scipy.io.objsave(ofile.name,globals(),all_data); g = globals() for a in all_data.keys(): g[a.replace('-','_')] = all_data[a] def load_imported_data(infile='data.pydat'): global all_data scipy.io.objload(infile,globals()) g=globals() for a in all_data.keys(): if(a.startswith('11')): g['d3' + a.replace('-','_')[9:]]=all_data[a] else: g[a.replace('-','_')]=all_data[a] def dorenamething(arg,thisdir,files): for fname in files: if os.path.isfile(thisdir + '/' + fname): if fname.endswith('.Spe'): try: shutil.copy(thisdir+'/'+fname,thisdir + '/' + fname[:-4]); print "Copied .Spe: %s/%s" % (thisdir,fname); except: print "Tried, but didn't load .Spe: %s/%s" % (thisdir,fname); else: print "Didn't load %s/%s" % (thisdir,fname); else: print "Wasn't a file: %s/%s" % (thisdir,fname); def rename_data_files(root='.',ext='.Spe',recurse=False): """Only works for .Spe...""" if recurse: os.path.walk(root,dorenamething,'') else: dorenamething('',root,os.listdir(os.getcwd()));