Guest User

Untitled

a guest
Nov 23rd, 2017
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Diff 3.01 KB | None | 0 0
  1. --- calcempresas.py 2011-09-12 19:37:47.388668632 +0200
  2. +++ calcempresas_v3.py  2011-09-12 20:10:47.557409725 +0200
  3. @@ -19,6 +19,7 @@
  4.  # llamamos a la funcion add_option donde le indicamos que paremetros vamos a recibir
  5.  # y de que tipo son string / int / etc.. asi como la ayuda
  6.  parser.add_option("-r", "--fileread", dest="ficheroleer", type="string", help="Lee CVS de entrada desde FICHEROLEER" )
  7. +parser.add_option("-s", "--fileselect", dest="ficheroseleccionados", type="string", help="Lee TXT con la tista de los elementos ya seleccionadados" )
  8.  parser.add_option("-w", "--filewrite", dest="ficheroescribir", type="string", help="Escribe CVS procesado a FICHEROESCRIBIR" )
  9.  parser.add_option("-n", "--numero", dest="numeroelementos", type="int", help="Numero de elementos aleatorios a escoger.")
  10.  
  11. @@ -94,6 +95,33 @@
  12.  
  13.  # Iniciamos una lista [] vacia
  14.  listadenumerosaleatorios = []
  15. +listadeseleccionados = []
  16. +
  17. +# Iniciamos la variable numerolineas a 0
  18. +numerolineasseleccionados = 0
  19. +# Si nos han especificado el parametro fichero seleccionados entonces..
  20. +if parametros.ficheroseleccionados is not None:
  21. +   # Comprobamos que el fichero existe (si no terminamos el programa)
  22. +   if not os.path.isfile(parametros.ficheroseleccionados):
  23. +       print ("ERROR: No existe el fichero %s \n" %parametros.ficheroseleccionados)
  24. +       parser.print_help()
  25. +       sys.exit()
  26. +   # Si existe lo abrimos
  27. +   ficheroseleccionados = open(parametros.ficheroseleccionados, "r")
  28. +   # Y leemos linea a linea su contenido y lo anadimos a la lista
  29. +   try:
  30. +       for linea in ficheroseleccionados:
  31. +           numerolineasseleccionados = numerolineasseleccionados + 1
  32. +           # Si no es un numero int(linea) da error.
  33. +           # Con el except de abajo capturamos el error e imprimimos un
  34. +           # mensaje y continuamos
  35. +           listadeseleccionados.append(int(linea))
  36. +   except:
  37. +       print ("ERROR: La linea numero %d del fichero %s no contiene un numero valido. Ignorando linea y continuando con el resto." %(numerolineasseleccionados,parametros.ficheroseleccionados))
  38. +
  39. +   print ("He leido %s numeros validos de %s" %(len(listadeseleccionados),parametros.ficheroseleccionados))
  40. +# Ordenamos la lista
  41. +listadeseleccionados.sort()
  42.  
  43.  # Mientras el numero de elementos de la lista listadenumerosaleatorios
  44.  # no sea igual al numero de elementos que ha especificado el usuario haz...
  45. @@ -103,10 +131,11 @@
  46.     # No nos interesa que haya numeros repetidos en la lista, y podria ser
  47.     # que numeroaleatorio generara dos veces el mismo numero
  48.     # asi que comprobamos que...
  49. -   # Si el numero aleatorio que hemos generado aun NO existe en la lista..
  50. -   if numeroaleatorio not in listadenumerosaleatorios:
  51. +   # Si el numero aleatorio que hemos generado aun NO existe en la lista.. y tampoco esta en la lista de elementos seleccionados
  52. +   if ( (numeroaleatorio not in listadeseleccionados) and (numeroaleatorio not in listadenumerosaleatorios) ):
  53.         # Entonces lo anadimos a la lista
  54.         listadenumerosaleatorios.append(numeroaleatorio)
  55. +
  56.  # Ahora los ordenamos de menor a mayor
  57.  listadenumerosaleatorios.sort()
Add Comment
Please, Sign In to add comment