Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --- calcempresas.py 2011-09-12 19:37:47.388668632 +0200
- +++ calcempresas_v3.py 2011-09-12 20:10:47.557409725 +0200
- @@ -19,6 +19,7 @@
- # llamamos a la funcion add_option donde le indicamos que paremetros vamos a recibir
- # y de que tipo son string / int / etc.. asi como la ayuda
- parser.add_option("-r", "--fileread", dest="ficheroleer", type="string", help="Lee CVS de entrada desde FICHEROLEER" )
- +parser.add_option("-s", "--fileselect", dest="ficheroseleccionados", type="string", help="Lee TXT con la tista de los elementos ya seleccionadados" )
- parser.add_option("-w", "--filewrite", dest="ficheroescribir", type="string", help="Escribe CVS procesado a FICHEROESCRIBIR" )
- parser.add_option("-n", "--numero", dest="numeroelementos", type="int", help="Numero de elementos aleatorios a escoger.")
- @@ -94,6 +95,33 @@
- # Iniciamos una lista [] vacia
- listadenumerosaleatorios = []
- +listadeseleccionados = []
- +
- +# Iniciamos la variable numerolineas a 0
- +numerolineasseleccionados = 0
- +# Si nos han especificado el parametro fichero seleccionados entonces..
- +if parametros.ficheroseleccionados is not None:
- + # Comprobamos que el fichero existe (si no terminamos el programa)
- + if not os.path.isfile(parametros.ficheroseleccionados):
- + print ("ERROR: No existe el fichero %s \n" %parametros.ficheroseleccionados)
- + parser.print_help()
- + sys.exit()
- + # Si existe lo abrimos
- + ficheroseleccionados = open(parametros.ficheroseleccionados, "r")
- + # Y leemos linea a linea su contenido y lo anadimos a la lista
- + try:
- + for linea in ficheroseleccionados:
- + numerolineasseleccionados = numerolineasseleccionados + 1
- + # Si no es un numero int(linea) da error.
- + # Con el except de abajo capturamos el error e imprimimos un
- + # mensaje y continuamos
- + listadeseleccionados.append(int(linea))
- + except:
- + print ("ERROR: La linea numero %d del fichero %s no contiene un numero valido. Ignorando linea y continuando con el resto." %(numerolineasseleccionados,parametros.ficheroseleccionados))
- +
- + print ("He leido %s numeros validos de %s" %(len(listadeseleccionados),parametros.ficheroseleccionados))
- +# Ordenamos la lista
- +listadeseleccionados.sort()
- # Mientras el numero de elementos de la lista listadenumerosaleatorios
- # no sea igual al numero de elementos que ha especificado el usuario haz...
- @@ -103,10 +131,11 @@
- # No nos interesa que haya numeros repetidos en la lista, y podria ser
- # que numeroaleatorio generara dos veces el mismo numero
- # asi que comprobamos que...
- - # Si el numero aleatorio que hemos generado aun NO existe en la lista..
- - if numeroaleatorio not in listadenumerosaleatorios:
- + # Si el numero aleatorio que hemos generado aun NO existe en la lista.. y tampoco esta en la lista de elementos seleccionados
- + if ( (numeroaleatorio not in listadeseleccionados) and (numeroaleatorio not in listadenumerosaleatorios) ):
- # Entonces lo anadimos a la lista
- listadenumerosaleatorios.append(numeroaleatorio)
- +
- # Ahora los ordenamos de menor a mayor
- listadenumerosaleatorios.sort()
Add Comment
Please, Sign In to add comment