On 01/04/2011 18:15, Susana Iraiis Delgado Rodriguez wrote:
Hello!

I'm going to answer to the question I posted in this list.
After a search trouhg web and analize the code, I just had to add a
try/except statement. Now I get what I need. Here is the information:

directorio = sys.argv[1]
extension = sys.argv[2]
csv_salida = sys.argv[3]
#Here I add the line:
try:
      if len(sys.argv) == 4:
      ........................
      ........................
else:
         print "Tus argumentos no son correctos"
and here:
except IndexError:
     print "Tus argumentos no son correctos"


You appear to be mixing two ways of doing the same thing. Either check the number of entries in sys.argv or catch the index error, don't do both. Read this, it probably explains things better than I can http://mail.python.org/pipermail/python-list/2003-May/203039.html


2011/3/29 Susana Iraiis Delgado Rodriguez <susana.delgad...@utzmg.edu.mx
<mailto:susana.delgad...@utzmg.edu.mx>>

    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

Cheers.

Mark L.


_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to