Hello List: I developed a script to walk through a specific directory in my PC and look for files with the same extension (.shp). I want the user to enter from MS-DOS and write the the directory, file extension and csv filename. My script reads the arguments from Windows console, but when I opened the txt file and csv file I noticed that isn't walking through all the root I wrote in MS-DOS. This is my module:
import os, csv, time, socket, sys from osgeo import ogr,gdal,osr #This should be the order for the arguments('csv_args.py [root] [file_extension] [csv filename]') #The user is typing python csv_args.py C:\ .shp csv.csv directorio = sys.argv[1] extension = sys.argv[2] csv_salida = sys.argv[3] if len(sys.argv) == 4: print 'Iniciando...' gdal.AllRegister() file_list = [] folders = None for root, folders, files in os.walk(directorio): file_list.extend(os.path.join(root,fi) for fi in files if fi.endswith(extension)) f = open(csv_salida, 'wb') log = open ('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' maq = 'maquina_host' usu = 'usuario' campos = [ruta,archivo,x_min,x_max,y_min,y_max,geometria,num_elem,prj,proyeccion,fecha,maq,usu] writer.writerow(campos) for row, filepath in enumerate(file_list, start=1): (ruta, filename) = os.path.split(filepath) shapeData = ogr.Open(filepath) shp = 'Error al abrir el archivo' +filepath if shapeData is None: print shp log.write(shp+"\n") else: layer = shapeData.GetLayer() feature = layer.GetNextFeature() x_y = layer.GetExtent() x1 = x_y[0] x2 = x_y[1] y1 = x_y[2] y2 = x_y[3] defn = layer.GetLayerDefn() geo = defn.GetGeomType() cuenta = layer.GetFeatureCount() proy = layer.GetSpatialRef() prjtext = ''+str(proy)+'' n = os.path.splitext(filepath) p = n[0]+'.prj' shx = n[0]+'.shx' dbf = n[0]+'.dbf' filepath = ''+filepath+'' filename = ''+filename+'' t = time.strftime("%m/%d/%Y %I:%M:%S %p",time.localtime(os.path.getmtime(filepath))) modificacion = ''+t+'' usuario = os.environ.get("USERNAME") user = ''+usuario+'' host = socket.gethostname() maquina = ''+host+'' if os.path.exists(shx): print 'El archivo ' +shx +' existe' else: og.write('No existe el archivo ' +shx+"\n") if os.path.exists(dbf): print 'El archivo ' +dbf +' existe' else: log.write('No existe el archivo ' +dbf+"\n") if os.path.exists(p): aRow= [ filepath, filename, x1, x2, y1, y2, geo, cuenta, 1, prjtext, modificacion, maquina, user] writer.writerow(aRow) else: aRow1= [ filepath, filename, x1, x2, y1, y2, geo, cuenta, 0, prjtext, modificacion, maquina, user] writer.writerow(aRow1) log.close() f.close() print "El archivo esta listo" else: print "Tus argumentos no son correctos"
_______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor