elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  [PYTHON] Cómo puedo indicar el directorio y tipo de archivo?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [PYTHON] Cómo puedo indicar el directorio y tipo de archivo?  (Leído 3,544 veces)
Maldito karma

Desconectado Desconectado

Mensajes: 246



Ver Perfil WWW
[PYTHON] Cómo puedo indicar el directorio y tipo de archivo?
« en: 25 Julio 2012, 20:23 pm »

Hola a todos.

Verán, dispongo del siguiente script de python para generar diccionarios secuenciales extraído de wifiway (generadorDiccio). Me gustaría saber cómo puedo indicarle dónde debe guardarme ése diccionario y en que tipo de documento texto (.txt, .lst, .dic) para poderlo usar en otras distros. Gracias por adelantado y saludos.

Código
  1. #!/usr/bin/python
  2. #
  3. # :: Invasion Tux
  4. # :: Ultima modificacion : miercoles, 14 de enero de 2009
  5. # :: Script realizado por makiolo (makiolo@gmail.com) (Licencia Creative Commons con reconocimiento)
  6. # :: Ultima version : http://blogricardo.wordpress.com/2008/12/28/script-para-generar-diccionarios-de-fuerza-bruta/
  7. # :: Dependencias : python
  8. #
  9.  
  10. import sys, math
  11. from time import time, localtime, strftime
  12.  
  13. ########################### CONFIGURACION #########################
  14.  
  15. LONGITUD = 20
  16. ALFABETO = "abcdefghijklmnopqrstuvwxyz0123456789 "
  17.  
  18. ####################################################################
  19.  
  20. ########################## FUNCIONES ###############################
  21. def getVariacionesConRepeticion(ALFABETO , LONGITUD):
  22.  sumatorio = 0
  23.  for i in range(LONGITUD):
  24.    producto = 1
  25.    for j in range(i+1):
  26.      producto = producto * len(ALFABETO)
  27.    sumatorio = sumatorio + producto
  28.  return sumatorio
  29.  
  30. def eventoPalabraGenerada(palabra):
  31.  print palabra
  32.  
  33. ####################################################################
  34.  
  35. ##################### VARS AUXILIARES ##############################
  36. DEBUG = True
  37. VERBOSE = True
  38. variacionesConRepeticion = getVariacionesConRepeticion(ALFABETO , LONGITUD)
  39. inicioReloj = time()
  40. cont = 0
  41. progreso = 0
  42. ####################################################################
  43.  
  44. while LONGITUD > 0:
  45.  try:
  46.    contadores = []                                                     # ponemos los contadores a 0
  47.    for i in range(LONGITUD):
  48.      contadores.append(0)
  49.  
  50.    fin = False
  51.    while not fin:
  52.      if DEBUG == True:
  53.        palabra=[] # Creas una lista vacia (y liberas de paso)
  54.        for i in range(LONGITUD):
  55.          palabra.append(ALFABETO[contadores[i]]) # Vas metiendo al final letra a letra
  56.        eventoPalabraGenerada("".join(palabra)) # Envias a tu callback tada la lista unida
  57.  
  58.      if VERBOSE == True:
  59.        if (cont % 600000 == 0) and (cont != 0):
  60.          progreso = cont*100.0/variacionesConRepeticion                # porcentaje hasta ahora
  61.          progreso = round(progreso , 2)
  62.          finReloj = time() - inicioReloj                               # finReloj es lo que esta tardando el calculo
  63.          velocidad = cont / finReloj                                   # palabras procesadas por segundo
  64.          velocidad = round(velocidad , 2)
  65.          estimado = finReloj * variacionesConRepeticion / cont         # es lo que se estima en realizar todo el proceso
  66.          restante = estimado - finReloj                                # es lo que se estima en realizar lo restante
  67.          restante = restante / 60 / 60                                 # lo pasamos a horas
  68.          restante = round(restante , 2)
  69.          sys.stderr.write(str(progreso)+"% - Quedan "+str(restante)+" horas. La velocidad es de "+str(velocidad)+" palabras/seg\n")
  70.  
  71.      cont = cont + 1
  72.      actual = LONGITUD - 1                                             # Pongo actual a la derecha del todo
  73.      contadores[actual] = contadores[actual] + 1                       # Sumo 1 a las unidades
  74.  
  75.      while(contadores[actual] == len(ALFABETO)) and not fin:           # Propago el carry
  76.        if(actual == 0):
  77.          fin = True                                                    # FIN
  78.        else:
  79.          contadores[actual] = 0                                        # reinicia el actual contador
  80.          actual = actual - 1                                           # avanza a la izquierda
  81.          contadores[actual] = contadores[actual] + 1                   # y le sumo 1
  82.  
  83.    LONGITUD = LONGITUD - 1                                             # combinaciones para uno menos
  84.  
  85.  except KeyboardInterrupt:
  86.    sys.stderr.write("Interrumpido por el usuario\n")
  87.    fin = True                                                          # Fuerzo las condiciones de salida
  88.    LONGITUD = 0
  89.  
  90. if VERBOSE == True:
  91.  sys.stderr.write("Terminado al "+str(progreso)+"% - Realizadas "+str(cont)+" combinaciones de "+str(variacionesConRepeticion)+"\n")
  92.  
  93.  


« Última modificación: 25 Julio 2012, 20:53 pm por EleKtro H@cker » En línea



Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.817



Ver Perfil
Re: [PYTHON] Cómo puedo indicar el directorio y tipo de archivo?
« Respuesta #1 en: 25 Julio 2012, 21:29 pm »

No me ha quedado claro si quieres hacer el menú para definirlo, O simplemente indicarlo en el script.

Aquí tienes:

Código
  1. #!/usr/bin/python
  2. #
  3. # :: Invasion Tux
  4. # :: Ultima modificacion : miercoles, 14 de enero de 2009
  5. # :: Script realizado por makiolo (makiolo@gmail.com) (Licencia Creative Commons con reconocimiento)
  6. # :: Ultima version : http://blogricardo.wordpress.com/2008/12/28/script-para-generar-diccionarios-de-fuerza-bruta/
  7. # :: Dependencias : python
  8. #
  9.  
  10. import sys, math
  11. from time import time, localtime, strftime
  12.  
  13. ########################### CONFIGURACION #########################
  14.  
  15. LONGITUD = 20
  16. ALFABETO = "abcdefghijklmnopqrstuvwxyz0123456789 "
  17. FILENAME = "Test"
  18. EXT      = ".TXT"
  19. PATH     = "C:\\"
  20.  
  21. ####################################################################
  22.  
  23. ########################## FUNCIONES ###############################
  24. def getVariacionesConRepeticion(ALFABETO , LONGITUD):
  25.  sumatorio = 0
  26.  for i in range(LONGITUD):
  27.    producto = 1
  28.    for j in range(i+1):
  29.      producto = producto * len(ALFABETO)
  30.    sumatorio = sumatorio + producto
  31.  return sumatorio
  32.  
  33. def eventoPalabraGenerada(palabra):
  34.  print palabra
  35.  FILE.write(palabra + "\n")
  36. ####################################################################
  37.  
  38. ##################### VARS AUXILIARES ##############################
  39. DEBUG = True
  40. VERBOSE = True
  41. variacionesConRepeticion = getVariacionesConRepeticion(ALFABETO , LONGITUD)
  42. inicioReloj = time()
  43. cont = 0
  44. progreso = 0
  45. ####################################################################
  46.  
  47. FILE = open(PATH+FILENAME+EXT,"w")
  48.  
  49. while LONGITUD > 0:
  50.  try:
  51.    contadores = []                                                     # ponemos los contadores a 0
  52.    for i in range(LONGITUD):
  53.      contadores.append(0)
  54.  
  55.    fin = False
  56.    while not fin:
  57.      if DEBUG == True:
  58.        palabra=[] # Creas una lista vacia (y liberas de paso)
  59.        for i in range(LONGITUD):
  60.          palabra.append(ALFABETO[contadores[i]]) # Vas metiendo al final letra a letra
  61.        eventoPalabraGenerada("".join(palabra)) # Envias a tu callback tada la lista unida
  62.  
  63.      if VERBOSE == True:
  64.        if (cont % 600000 == 0) and (cont != 0):
  65.          progreso = cont*100.0/variacionesConRepeticion                # porcentaje hasta ahora
  66.          progreso = round(progreso , 2)
  67.          finReloj = time() - inicioReloj                               # finReloj es lo que esta tardando el calculo
  68.          velocidad = cont / finReloj                                   # palabras procesadas por segundo
  69.          velocidad = round(velocidad , 2)
  70.          estimado = finReloj * variacionesConRepeticion / cont         # es lo que se estima en realizar todo el proceso
  71.          restante = estimado - finReloj                                # es lo que se estima en realizar lo restante
  72.          restante = restante / 60 / 60                                 # lo pasamos a horas
  73.          restante = round(restante , 2)
  74.          sys.stderr.write(str(progreso)+"% - Quedan "+str(restante)+" horas. La velocidad es de "+str(velocidad)+" palabras/seg\n")
  75.  
  76.      cont = cont + 1
  77.      actual = LONGITUD - 1                                             # Pongo actual a la derecha del todo
  78.      contadores[actual] = contadores[actual] + 1                       # Sumo 1 a las unidades
  79.  
  80.      while(contadores[actual] == len(ALFABETO)) and not fin:           # Propago el carry
  81.        if(actual == 0):
  82.          fin = True                                                    # FIN
  83.        else:
  84.          contadores[actual] = 0                                        # reinicia el actual contador
  85.          actual = actual - 1                                           # avanza a la izquierda
  86.          contadores[actual] = contadores[actual] + 1                   # y le sumo 1
  87.  
  88.    LONGITUD = LONGITUD - 1                                             # combinaciones para uno menos
  89.  
  90.  except KeyboardInterrupt:
  91.    sys.stderr.write("Interrumpido por el usuario\n")
  92.    fin = True                                                          # Fuerzo las condiciones de salida
  93.    LONGITUD = 0
  94.  
  95. if VERBOSE == True:
  96.  sys.stderr.write("Terminado al "+str(progreso)+"% - Realizadas "+str(cont)+" combinaciones de "+str(variacionesConRepeticion)+"\n")
  97.  
  98.  


En línea

Maldito karma

Desconectado Desconectado

Mensajes: 246



Ver Perfil WWW
Re: [PYTHON] Cómo puedo indicar el directorio y tipo de archivo?
« Respuesta #2 en: 25 Julio 2012, 21:59 pm »

No me ha quedado claro si quieres hacer el menú para definirlo, O simplemente indicarlo en el script.

Mi idea era indicarlo en el script, por que total, luego lo puedo modificar el un editor de textos. Y solo por curiosidad, ¿cómo se hace ése menú? Muchas gracias.  :)

Saludos.
En línea



Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.817



Ver Perfil
Re: [PYTHON] Cómo puedo indicar el directorio y tipo de archivo?
« Respuesta #3 en: 25 Julio 2012, 22:37 pm »

Me refería a algo así (Nada de TKinter), Es más bien un "wizard" que un menú:

Código
  1. import os
  2.  
  3. FILENAME = ""
  4. EXT      = ""
  5. PATH     = ""
  6.  
  7. while FILENAME == "" :
  8.  FILENAME = raw_input("""
  9.  - Escribe el nombre para el archivo.
  10.  
  11.  Ej. "Test" > """)
  12.  os.system('clear')
  13.  
  14. while EXT == "" :
  15.  EXT = raw_input("""
  16.  - Escribe el tipo de archivo.
  17.  
  18.  Ej. "TXT" > """)
  19.  os.system('clear')
  20.  
  21. while PATH == "" :
  22.  PATH = raw_input("""
  23.  - Escribe la ruta para el archivo.
  24.  
  25.  Ej. "C:\\" > """)
  26.  os.system('clear')
  27.  
  28. FILE = PATH+FILENAME+"."+EXT
  29.  
  30. print "FILE = " + FILE
  31.  
  32. raw_input()

Saludos
« Última modificación: 25 Julio 2012, 22:41 pm por EleKtro H@cker » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[PYTHON] Como descargar un directorio web completo
Scripting
n3w 3 5,110 Último mensaje 15 Diciembre 2012, 18:08 pm
por 0x5d
Indicar al Batch que el caracter no se usara como modificador
Scripting
Btcsk 2 4,913 Último mensaje 27 Mayo 2013, 20:24 pm
por Btcsk
[PYTHON] ¿Algún tipo de GoTo en Python?
Scripting
TheCrimulo 6 3,787 Último mensaje 15 Diciembre 2014, 16:41 pm
por PedroDJavier
¿Cómo filtrar los nombres de un directorio con Python?
Scripting
jheberg 2 4,480 Último mensaje 12 Febrero 2018, 05:53 am
por jheberg
[Ayuda] [Python] backdoor y cambio de directorio
Scripting
yomismo2512 3 3,582 Último mensaje 28 Marzo 2020, 07:34 am
por reconFito
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines