Hi! I just want to look the pathfile like this: C:\Python26 instead of C:/\Python26, I feel the loop repeats its walking with this pathfile structure. About the indention for the code, I tried my best to make it clear ande neat. But the mi e-mail editor it's mixing-up spaces. Here's again: from Tkinter import * #Llamo las librerias graficas de Tk import tkSimpleDialog #Libreria de almacenamiento de dialogos import tkMessageBox #Libreria de mensajes import tkFileDialog import sys, os, csv, time, socket, stat from osgeo import ogr,gdal,osr from osgeo.gdalconst import * from PIL import Image dir = "" extn = "" csv_name = "" filesystemencoding = sys.getfilesystemencoding()
def directorio(): global dir print 'Seleccione directorio donde empezar' dirname1 = tkFileDialog.askdirectory(parent=root,initialdir="/",title='Selecciona la ruta a escanear') if len(dirname1 ) > 0: print "You chose %s" % dirname1 dir = dirname1 def extension(): global extn print "Escribe la extension que necesitas buscar" ext=tkSimpleDialog.askstring('Extension a buscar:','') print 'Buscando archivos: ',ext extn = ext def csv_w(): global csv_name print "Nombre del csv a crear" inv=tkSimpleDialog.askstring('Nombre de .csv:','') print 'Archivo de salidad: ',inv csv_name = inv def buscar(): print 'Iniciando...' gdal.AllRegister() file_list = [] folders = None for root, folders, files in os.walk(dir): file_list.extend(os.path.join(root,fi) for fi in files if fi.endswith(extn)) f = open(csv_name, 'wb') log = open ('log_errores.txt','w') writer = csv.writer(f) ruta = 'Ruta' archivo = 'archivo' x_min = 'x_min' x_max = 'x_max' y_min = 'y_min' y_max = 'y_max' geometria = 'geometria' num_elem = 'num_elem' prj = '.prj' proyeccion = 'proyeccion' fecha = 'fecha_modificacion' creacion = 'fecha_creacion' ultimo = 'ultimo_acceso' tamanio = 'tamanio_aprox' maq = 'maquina_host' usu = 'usuario' campos = [ruta,archivo,x_min,x_max,y_min,y_max,geometria,num_elem,prj,proyeccion,creacion,fecha,ultimo,tamanio,maq,usu] writer.writerow(campos) for row, filepath in enumerate(file_list, start=1): directorio = os.path.dirname(filepath) filename = os.path.basename(filepath) #shapeData = ogr.Open(filepath) shapeData = ogr.Open(filepath.encode(filesystemencoding)) if shapeData is None: shp = 'Error al abrir el archivo ' + filepath.encode(filesystemencoding) print shp log.write(shp+"\n") else: print 'Trabajando en: ' +filepath layer = shapeData.GetLayer() feature = layer.GetNextFeature() x_y = layer.GetExtent() #x_min x1 = x_y[0] #x_max x2 = x_y[1] #y_min y1 = x_y[2] #y_max y2 = x_y[3] #Escribir el tipo de geometria del shp. 1=Point, 2=LineString, 3=Polygon defn = layer.GetLayerDefn() geo = defn.GetGeomType() #Comenzar el featurecount() cuenta = layer.GetFeatureCount() proy = layer.GetSpatialRef() prjtext = ''+str(proy)+'' ### n = os.path.splitext(filepath) p = n[0]+'.prj' shx = n[0]+'.shx' #shx_msj = 'Error al abrir el archivo' +shx dbf = n[0]+'.dbf' #dbf_msj = 'Error al abrir el archivo' +dbf filepath = ''+filepath+'' filename = ''+filename+'' t = time.strftime("%m/%d/%Y %I:%M:%S %p",time.localtime(os.path.getmtime(filepath))) modificacion = ''+t+'' crdt = time.strftime("%m/%d/%Y %I:%M:%S %p",time.localtime(os.path.getctime(filepath))) crea = ''+crdt+'' lt_acc = time.strftime("%m/%d/%Y %I:%M:%S %p",time.localtime(os.path.getatime(filepath))) acceso = ''+lt_acc+'' s = os.path.getsize(filepath) def sizeof_fmt(num): for x in ['bytes','KB','MB','GB','TB']: if num < 1024.0: return "%3.1f%s" % (num, x) num /= 1024.0 #Obtener usuario usuario = os.environ.get("USERNAME") user = ''+usuario+'' host = socket.gethostname() maquina = ''+host+'' if os.path.exists(shx): print '.' shx1 = os.path.getsize(shx) #kb2 = sizeof_fmt(shx1) else: log.write('No existe el archivo ' +shx+"\n") if os.path.exists(dbf): print '.' else: log.write('No existe el archivo ' +dbf+"\n") if os.path.exists(p): #Si existe, asignar 1 p1 = os.path.getsize(p) total = sizeof_fmt(s+shx1+p1) aRow= [ directorio, filename, x1, x2, y1, y2, geo, cuenta, 1, prjtext, crea, modificacion, acceso, total, maquina, user] writer.writerow(aRow) else: #Sino asignar 0 #no_prj = 'Sin prj, no se puede determinar la proyeccion' total = sizeof_fmt(s+shx1) aRow1= [ directorio, filename, x1, x2, y1, y2, geo, cuenta, 0, prjtext, crea, modificacion, acceso, total, maquina, user] writer.writerow(aRow1) log.close() f.close() print "El archivo esta listo" root = Tk() top = Toplevel() #Llamo una nueva ventana #Dimensiones de la ventana root.minsize(400,200) #Barra de herramientas toolbar = Frame(root) #Botones b = Button(toolbar, text="Selecciona ruta", width=15, command=directorio) b.pack(side=LEFT, padx=2, pady=2) b = Button(toolbar, text="Escriba extension", width=15, command=extension) b.pack(side=LEFT, padx=2, pady=2) b = Button(toolbar, text="Nombre de csv", width=15, command=csv_w) b.pack(side=LEFT, padx=2, pady=2) b = Button(toolbar, text="Aceptar", width=6, command=buscar) b.pack(side=LEFT, padx=2, pady=2) toolbar.pack(side=TOP, fill=X) root.mainloop() 2011/9/12 Alan Gauld <alan.ga...@btinternet.com> > On 12/09/11 15:49, Susana Iraiis Delgado Rodriguez wrote: > >> Hi! >> I developed a python gui module to make a walk through a directory. This >> time I want the user to select the parameters I need from the python >> gui. The results will be written in a csv file, the problem I found is >> the pathfile shows this way: >> C:/\Archivos de programa\FWTools2.4.7\bin\**mapnik-0.7.1\demo\data >> > > What exactly do you feel is wrong with that? > Is it the fact that the first slash after the colon is forward facing? > Or is there something else? > > > I'm workin with Python 2.6.6 and Windows XP, the code is: >> > > Could you please use a few more spaces. Both to indent the code (2 spaces > ids really the minimum and 3 or 4 is normal. But one is > useless) and to separate the functions vertically. (ie a blank line before > the def statements) > > It is really very hard work wading through this stuff! I don't know how you > can read it but I'm struggling to see the structure. > > > > from Tkinter import * #Llamo las librerias graficas de Tk >> import tkSimpleDialog #Libreria de almacenamiento de dialogos >> import tkMessageBox #Libreria de mensajes >> import tkFileDialog >> import sys, os, csv, time, socket, stat >> from osgeo import ogr,gdal,osr >> from osgeo.gdalconst import * >> from PIL import Image >> dir = "" >> extn = "" >> csv_name = "" >> > > def directorio(): >> global dir >> print 'Seleccione directorio donde empezar' >> dirname = >> tkFileDialog.askdirectory(**parent=root,initialdir="/",** >> title='Selecciona >> la ruta a escanear') >> if len(dirname ) > 0: >> print "You chose %s" % dirname >> dir = dirname >> > > def extension(): >> global extn >> print "Escribe la extension que necesitas buscar" >> ext=tkSimpleDialog.askstring('**Extension a buscar:','') >> print 'Buscando archivos: ',ext >> extn = ext >> > > def csv_w(): >> global csv_name >> print "Nombre del csv a crear" >> inv=tkSimpleDialog.askstring('**Nombre de .csv:','') >> print 'Archivo de salidad: ',inv >> csv_name = inv >> > > def boton4(): >> print 'Iniciando...' >> gdal.AllRegister() >> file_list = [] >> folders = None >> for root, folders, files in os.walk(dir): >> file_list.extend(os.path.join(**root,fi) for fi in files if >> fi.endswith(extn)) >> f = open(csv_name, 'wb') >> log = open ('log_errores.txt','w') >> writer = csv.writer(f) >> ruta = 'Ruta' >> archivo = 'archivo' >> x_min = 'x_min' >> x_max = 'x_max' >> y_min = 'y_min' >> y_max = 'y_max' >> geometria = 'geometria' >> num_elem = 'num_elem' >> prj = '.prj' >> proyeccion = 'proyeccion' >> fecha = 'fecha_modificacion' >> creacion = 'fecha_creacion' >> ultimo = 'ultimo_acceso' >> tamanio = 'tamanio_aprox' >> maq = 'maquina_host' >> usu = 'usuario' >> campos = >> [ruta,archivo,x_min,x_max,y_**min,y_max,geometria,num_elem,** >> prj,proyeccion,creacion,fecha,**ultimo,tamanio,maq,usu] >> writer.writerow(campos) >> for row, filepath in enumerate(file_list, start=1): >> directorio = os.path.dirname(filepath) >> filename = os.path.basename(filepath) >> shapeData = ogr.Open(filepath) >> shp = 'Error al abrir el archivo' +filepath >> if shapeData is None: >> print shp >> log.write(shp+"\n") >> > > > > I don't want to get filepath order >> > > I don't understand what that means? > > -- > Alan G > Author of the Learn to Program web site > http://www.alan-g.me.uk/ > > ______________________________**_________________ > Tutor maillist - Tutor@python.org > To unsubscribe or change subscription options: > http://mail.python.org/**mailman/listinfo/tutor<http://mail.python.org/mailman/listinfo/tutor> >
_______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor