[Tutor] Run application from MS-DOS with sys.argv
Susana Iraiis Delgado Rodriguez
susana.delgado_s at utzmg.edu.mx
Fri Apr 1 19:15:23 CEST 2011
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"
2011/3/29 Susana Iraiis Delgado Rodriguez <susana.delgado_s at 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"
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/tutor/attachments/20110401/dea9a08e/attachment.html>
More information about the Tutor
mailing list