Python

Crackeador MD5 por Fuerza bruta

21:58 ANTRAX 2 Comments

Aca les dejo este crackeador por fuerza bruta. Funciona de maravilla aunque no es muy rapido por el lenguaje. Quizas les sirva como ejemplo.

Modo de uso:
Cracker.py -t md5 -h e10adc3949ba59abbe56e057f20f883e -w 1234567890 -a 9 -i 3 -v
Comandos:
-t: Tipo de Hash
-h: Hash a Crackear
-w: Teclas a usar 
-a: Maximo de Caracteres
-i: Minimo de Caracteres
-v: Modo Hacking
Codigo Fuente:
import sys , string , time
def main():
    "Main"
    title = "MD5 Cracker Brute Force"
    print "\n" + title.center(45) + "\n"
 
def usage():
    "Usage"
    print "[+] Ejemplo : Cracker.py -t md5 -h e10adc3949ba59abbe56e057f20f883e -w 1234567890 -a 9 -i 3 -v"
 
def usagelarge():
    "Usage Large"
    print "\n  Forma de Uso:"
    print "\n  [+]Ejemplo: Cracker.py -t md5 -h e10adc3949ba59abbe56e057f20f883e -w 1234567890 -a 9 -i 3 -v"
    print ""
    print "\t[Comandos]"
    print "\t   -t: Tipo de Hash"
    print "\t   -h: Hash a Crackear"
    print "\t   -w: Teclas a usar" 
    print "\t   -a: Maximo de Caracteres"
    print "\t   -i: Minimo de Caracteres"
    print "\t   -v: Modo Hacking\n"
 
def timer():
    "Time"
    now = time.localtime(time.time())
    return time.asctime(now)
 
if '__main__' == __name__ :
 
    if len(sys.argv) <= 5:
        main()
        usagelarge()
        sys.exit(1)
 
    hhash = words = maxw = minw = typeh = ""
    verbose = 0
 
    for arg in sys.argv[1:]:
        try:
            if arg.lower() == "-v" or arg.lower() == "-verbose":
                    verbose = 1
            if arg.lower() == "-h" or arg.lower() == "-hash":
                    hhash = sys.argv[int(sys.argv[1:].index(arg))+2]
            if arg.lower() == "-a" or arg.lower() == "-max":
                    maxw = sys.argv[int(sys.argv[1:].index(arg))+2]
            if arg.lower() == "-i" or arg.lower() == "-min":
                    minw = sys.argv[int(sys.argv[1:].index(arg))+2]
            if arg.lower() == "-w" or arg.lower() == "-words":
                    words = sys.argv[int(sys.argv[1:].index(arg))+2]
            if arg.lower() == "-t" or arg.lower() == "-type":
                    typeh = sys.argv[int(sys.argv[1:].index(arg))+2]
        except(IndexError):
            print "[+] Comandos Obligatorios -t(Tipo de Hash) -h(Hash) -w(Teclas) -a(Maximo de teclas) -a(Minimo de teclas)"
            usage()
            sys.exit(1)
 
    if minw == "" : minw = '1'
 
    main()
    for args in (typeh, hhash, words, maxw, minw):
        try:
            if args != "":
                if args == typeh :
                    if typeh.lower() != 'md5' or 'sha':
                        if typeh.lower() == "md5" :
                            typeh = '1'
                            print "[+] Tipo de Hash : MD5"
                        elif typeh.lower() == "sha" :
                            typeh = '2'
                            print "[+] Tipo de Hash : SHA1"
                    else:
                        print "[+] Tipo Invalido de Hash"
                        sys.exit(1)
                if args == hhash :
                    if typeh == '1' :
                        if len(hhash) == 32 :
                            print "[+] MD5 Hash : " + hhash
                        else:
                            print "[+] Tipo Invalido de Hash"
                            sys.exit(1)
                    if typeh == '2' :
                        if len(hhash) == 40 :
                            print "[+] SHA1 Hash : " + hhash
                        else:
                            print "[+] SHA1 Invalido"
                            sys.exit(1)
                if args == words :
                    print "[+] Teclas a usar : " + words
                if args == maxw :
                    if maxw.isdigit() != False :
                        if int(maxw) >= 15 :
                            print "[+] Maximo de Digitos : 15 : " + maxw
                            sys.exit(1)
                        else:
                            if int(maxw) > int(minw):
                                print "[+] Maximo de Digitos : " + maxw
                            else:
                                print "[+] El Maximo de Digitos debe ser mayor al Minimo de Digitos"
                                sys.exit(1)
                    else:
                        print "[+] Maximo de Teclas = Digitos"
                        sys.exit(1)
                if args == minw :
                        if minw.isdigit() != False :
                            if int(minw) < int(maxw) :
                                print "[+] Minimo de Digitos : " + minw
                            else:
                                print "[+] El minimo de Digitos debe ser menor al maximo de Digitos"
                                sys.exit(1)
                        else:
                            print "[+] Minimo de Teclas = Digitos"
                            sys.exit(1)
            else:
                print "[+] Comandos Obligatorios -t(Tipo de Hash) -h(Hash) -w(Teclas) -a(Maximo de teclas) -a(Minimo de teclas)"
                usage()
                sys.exit(1)
        except(ValueError):
            print "[+] Formato de comandos erroneo"
            sys.exit(1)
 
    f = open("CRACK.py",'w')
    f.write("#!/usr/bin/env python\n")
    if (typeh == '1') : f.write("import sys , md5 , string , time\n")
    if (typeh == '2') : f.write("import sys , sha , string , time\n")
    tab = '\t'
    f.write("def timer():\n")
    f.write(tab + "now = time.localtime(time.time())\n")
    f.write(tab + "return time.asctime(now)\n")
    f.write("def crackhash():\n")
 
    i = 0 ; inwords = ""
    f.write(tab + "hashh = '" + hhash.lower() +"'\n")
    f.write(tab + "try:\n")
 
    #print words
    for i in words:
        if i == str(words[int(len(words)-1)]) : 
            inwords += "'" + i + "'"
            break
        inwords += "'" + i + "',"
    #print inwords
 
    i = int(minw) ; iwords = "" ; a = 0
 
    while (int(i) != int(maxw) + 1) :
 
        for a in range(i):
            if int(i) != (int(a) + 1):
                iwords += "i" + str(i) + str(a) + " + "
            else:
                 iwords += "i" + str(i) + str(a)
 
            data = (int(a + 2) * tab + "for i" + str(i) + str(a) + " in (" + inwords + "):\n")
            f.write(data)
 
        f.write(int(i + 2) * tab + "word = '' ; value = ''\n")
        f.write(int(i + 2) * tab + "word = " + iwords + "\n")
 
        if typeh == '1' : f.write(int(i + 2) * tab + "hash = md5.new()\n")
 
        if typeh == '2' : f.write(int(i + 2) * tab + "hash = sha.new()\n")
 
        f.write(int(i + 2) * tab + "hash.update(str(word))\n")
        f.write(int(i + 2) * tab + "value = hash.hexdigest()\n") 
        if verbose == 1 : f.write(int(i + 2) * tab + "print " + iwords + ' + " : " + str(value)\n')
        f.write(int(i + 2) * tab + "if str(hashh) == str(value):\n")
        f.write(int(i + 3) * tab + "raise Exception\n")
        iwords = ""
        i += 1
 
    f.write(tab + "except(Exception):")
    f.write('\n'+ 2 * tab + "print '********************  Hash Crackeado ' + 20 * '*'")
    f.write('\n' + 2 * tab + "print '[+] HASH :', hashh")
    f.write('\n' + 2 * tab + "print '[+] PASS :', str(word)")
    f.write('\n' + 2 * tab + "print '[+] Hora de finalizacion :', timer()")
    f.write('\n' + 2 * tab + "sys.exit(1)")
    f.write('\n' + tab + "except(KeyboardInterrupt):")
    f.write('\n' + 2 * tab + "print '[+] Process Ended ',timer()")
    f.write('\n' + 2 * tab + "sys.exit(1)")
    f.write("\ncrackhash()")
    f.close()
 
    print '[+] Hora de inicio : ', timer()
 
    import CRACK
    CRACK.crackhash()

2 comentarios:

Python

Calculadora de Matrices en Python

20:20 ANTRAX 3 Comments

Hola a todos. Estaba aburrido y decidi codear algo util en Python. Hice esta calculadora que resuelve operaciones con matrices.


Codigo Fuente:
#/==================================\
#  Calculadora de matrices en Python
#  CODED BY ANTRAX
#  antrax.dc0de [at] gmail [dot] com
#\==================================/

#Menu

salir = "s"

while salir == "s":
    
    print "    --=** MENU **=--"
    print ""
    print "[1] Suma de Matrices"
    print "[2] Resta de Matrices"
    print "[3] Multiplicacion de Matrices"
    print "[4] Multiplicacion por un Numero"
    print "[5] Transpuesta de una Matriz"
    print ""
    
#Modelo de la Matriz
    print "Modelo de la Matriz"
    print ""
    print   "[F1C1 F1C2 F1C3]"
    print   "[F2C1 F2C2 F2C3]"
    print   "[F3C1 F3C2 F3C3]"
    print ""

#Opcion "1" SUMA
    x=input("Ingrese Opcion: ")
    print ""
    if x==1:

#Matriz "A"
        print "Ingrese la Matriz A"
        print ""
        af1c1=int(raw_input("Ingrese el valor de F1C1: "))
        af1c2=int(raw_input("Ingrese el valor de F1C2: "))
        af1c3=int(raw_input("Ingrese el valor de F1C3: "))
        af2c1=int(raw_input("Ingrese el valor de F2C1: "))
        af2c2=int(raw_input("Ingrese el valor de F2C2: "))
        af2c3=int(raw_input("Ingrese el valor de F2C3: "))
        af3c1=int(raw_input("Ingrese el valor de F3C1: "))
        af3c2=int(raw_input("Ingrese el valor de F3C2: "))
        af3c3=int(raw_input("Ingrese el valor de F3C3: "))

#Visualizacion Matriz "A"
        print ""
        print "MATRIZ A"
        print ""
        print "[", af1c1, af1c2, af1c3, "]"
        print "[", af2c1, af2c2, af2c3, "]"
        print "[", af3c1, af3c2, af3c3, "]"
        print ""

#Matriz "B"
        print "Ingrese la Matriz B"
        print ""
        bf1c1=int(raw_input("Ingrese el valor de F1C1: "))
        bf1c2=int(raw_input("Ingrese el valor de F1C2: "))
        bf1c3=int(raw_input("Ingrese el valor de F1C3: "))
        bf2c1=int(raw_input("Ingrese el valor de F2C1: "))
        bf2c2=int(raw_input("Ingrese el valor de F2C2: "))
        bf2c3=int(raw_input("Ingrese el valor de F2C3: "))
        bf3c1=int(raw_input("Ingrese el valor de F3C1: "))
        bf3c2=int(raw_input("Ingrese el valor de F3C2: "))
        bf3c3=int(raw_input("Ingrese el valor de F3C3: "))
        print ""

#Visualizacion Matriz "B"
        print "MATRIZ B"
        print""
        print "[", bf1c1, bf1c2, bf1c3, "]"
        print "[", bf2c1, bf2c2, bf2c3, "]"
        print "[", bf3c1, bf3c2, bf3c3, "]"
        print ""
    
#Operacion Suma
        rf1c1 = af1c1 + bf1c1
        rf1c2 = af1c2 + bf1c2
        rf1c3 = af1c3 + bf1c3
        rf2c1 = af2c1 + bf2c1
        rf2c2 = af2c2 + bf2c2
        rf2c3 = af2c3 + bf2c3
        rf3c1 = af3c1 + bf3c1
        rf3c2 = af3c2 + bf3c2
        rf3c3 = af3c3 + bf3c3
    
#Visualizacion Matriz "Resultado"
        print "MATRIZ Resultado"
        print ""
        print "[", rf1c1, rf1c2, rf1c3, "]"
        print "[", rf2c1, rf2c2, rf2c3, "]"
        print "[", rf3c1, rf3c2, rf3c3, "]"
        print ""
    
#Opcion "2" RESTA
    elif x==2:

#Matriz "A"
        print "Ingrese la Matriz A"
        print ""
        af1c1=int(raw_input("Ingrese el valor de F1C1: "))
        af1c2=int(raw_input("Ingrese el valor de F1C2: "))
        af1c3=int(raw_input("Ingrese el valor de F1C3: "))
        af2c1=int(raw_input("Ingrese el valor de F2C1: "))
        af2c2=int(raw_input("Ingrese el valor de F2C2: "))
        af2c3=int(raw_input("Ingrese el valor de F2C3: "))
        af3c1=int(raw_input("Ingrese el valor de F3C1: "))
        af3c2=int(raw_input("Ingrese el valor de F3C2: "))
        af3c3=int(raw_input("Ingrese el valor de F3C3: "))
        print ""
    
#Visualizacion Matriz "A"
        print "MATRIZ A"
        print ""
        print "[", af1c1, af1c2, af1c3, "]"
        print "[", af2c1, af2c2, af2c3, "]"
        print "[", af3c1, af3c2, af3c3, "]"
        print ""
    
#Matriz "B"
        print "Ingrese la Matriz B"
        print ""
        bf1c1=int(raw_input("Ingrese el valor de F1C1: "))
        bf1c2=int(raw_input("Ingrese el valor de F1C2: "))
        bf1c3=int(raw_input("Ingrese el valor de F1C3: "))
        bf2c1=int(raw_input("Ingrese el valor de F2C1: "))
        bf2c2=int(raw_input("Ingrese el valor de F2C2: "))
        bf2c3=int(raw_input("Ingrese el valor de F2C3: "))
        bf3c1=int(raw_input("Ingrese el valor de F3C1: "))
        bf3c2=int(raw_input("Ingrese el valor de F3C2: "))
        bf3c3=int(raw_input("Ingrese el valor de F3C3: "))
        print ""

#Visualizacion Matriz "B"
        print "MATRIZ B"
        print ""
        print "[", bf1c1, bf1c2, bf1c3, "]"
        print "[", bf2c1, bf2c2, bf2c3, "]"
        print "[", bf3c1, bf3c2, bf3c3, "]"
        print ""
    
#Operacion Resta    
        rf1c1 = af1c1 - bf1c1
        rf1c2 = af1c2 - bf1c2
        rf1c3 = af1c3 - bf1c3
        rf2c1 = af2c1 - bf2c1
        rf2c2 = af2c2 - bf2c2
        rf2c3 = af2c3 - bf2c3
        rf3c1 = af3c1 - bf3c1
        rf3c2 = af3c2 - bf3c2
        rf3c3 = af3c3 - bf3c3

#Visualizacion Matriz "Resultado"
        print "MATRIZ Resultado"
        print ""
        print "[", rf1c1, rf1c2, rf1c3, "]"
        print "[", rf2c1, rf2c2, rf2c3, "]"
        print "[", rf3c1, rf3c2, rf3c3, "]"
        print ""

#Opcion "3" MULTIPLICACION
    elif x==3:
    
#Matriz "A"
        print "Ingrese la Matriz A"
        print ""
        af1c1=int(raw_input("Ingrese el valor de F1C1: "))
        af1c2=int(raw_input("Ingrese el valor de F1C2: "))
        af1c3=int(raw_input("Ingrese el valor de F1C3: "))
        af2c1=int(raw_input("Ingrese el valor de F2C1: "))
        af2c2=int(raw_input("Ingrese el valor de F2C2: "))
        af2c3=int(raw_input("Ingrese el valor de F2C3: "))
        af3c1=int(raw_input("Ingrese el valor de F3C1: "))
        af3c2=int(raw_input("Ingrese el valor de F3C2: "))
        af3c3=int(raw_input("Ingrese el valor de F3C3: "))
        print ""

#Visualizacion Matriz "A"
        print "MATRIZ A"
        print ""
        print "[", af1c1, af1c2, af1c3, "]"
        print "[", af2c1, af2c2, af2c3, "]"
        print "[", af3c1, af3c2, af3c3, "]"
        print ""
    
#Matriz "B"
        print "Ingrese la Matriz B"
        print ""
        bf1c1=int(raw_input("Ingrese el valor de F1C1: "))
        bf1c2=int(raw_input("Ingrese el valor de F1C2: "))
        bf1c3=int(raw_input("Ingrese el valor de F1C3: "))
        bf2c1=int(raw_input("Ingrese el valor de F2C1: "))
        bf2c2=int(raw_input("Ingrese el valor de F2C2: "))
        bf2c3=int(raw_input("Ingrese el valor de F2C3: "))
        bf3c1=int(raw_input("Ingrese el valor de F3C1: "))
        bf3c2=int(raw_input("Ingrese el valor de F3C2: "))
        bf3c3=int(raw_input("Ingrese el valor de F3C3: "))
        print ""

#Visualizacion Matriz "B"
        print "MATRIZ B"
        print ""
        print "[", bf1c1, bf1c2, bf1c3, "]"
        print "[", bf2c1, bf2c2, bf2c3, "]"
        print "[", bf3c1, bf3c2, bf3c3, "]"
        print ""
    
#Operacion Multiplicacion    
        rf1c1= (af1c1 * bf1c1) + (af1c2 * bf2c1) + ( af1c3 * bf3c1)
        rf1c2= (af1c1 * bf1c2) + (af1c2 * bf2c2) + ( af1c3 * bf3c2)
        rf1c3= (af1c1 * bf1c3) + (af1c2 * bf2c3) + ( af1c3 * bf3c3)
        rf2c1= (af2c1 * bf1c1) + (af2c2 * bf2c1) + ( af2c3 * bf3c1)
        rf2c2= (af2c1 * bf1c2) + (af2c2 * bf2c2) + ( af2c3 * bf3c2)
        rf2c3= (af2c1 * bf1c3) + (af2c2 * bf2c3) + ( af2c3 * bf3c3)
        rf3c1= (af3c1 * bf1c1) + (af3c2 * bf2c1) + ( af3c3 * bf3c1)
        rf3c2= (af3c1 * bf1c2) + (af3c2 * bf2c2) + ( af3c3 * bf3c2)
        rf3c3= (af3c1 * bf1c3) + (af3c2 * bf2c3) + ( af3c3 * bf3c3)

#Visualizacion Matriz "Resultado"
        print "MATRIZ Resultado"
        print ""
        print "[", rf1c1, rf1c2, rf1c3, "]"
        print "[", rf2c1, rf2c2, rf2c3, "]"
        print "[", rf3c1, rf3c2, rf3c3, "]"
        print ""

#Opcion "4" MULTIPLICACION POR UN NUMERO
    elif x==4:
        z=int(raw_input("Ingrese el numero para multiplicar con la matriz: "))
        print ""
        
#Matriz "A"
        print "Ingrese la Matriz A"
        print ""
        af1c1=int(raw_input("Ingrese el valor de F1C1: "))
        af1c2=int(raw_input("Ingrese el valor de F1C2: "))
        af1c3=int(raw_input("Ingrese el valor de F1C3: "))
        af2c1=int(raw_input("Ingrese el valor de F2C1: "))
        af2c2=int(raw_input("Ingrese el valor de F2C2: "))
        af2c3=int(raw_input("Ingrese el valor de F2C3: "))
        af3c1=int(raw_input("Ingrese el valor de F3C1: "))
        af3c2=int(raw_input("Ingrese el valor de F3C2: "))
        af3c3=int(raw_input("Ingrese el valor de F3C3: "))
        print ""

#Visualizacion Matriz "A"
        print "MATRIZ A"
        print ""
        print "[", af1c1, af1c2, af1c3, "]"
        print "[", af2c1, af2c2, af2c3, "]"
        print "[", af3c1, af3c2, af3c3, "]"
        print ""

#Operacion Multiplicacion por numero

        rf1c1 = z * af1c1
        rf1c2 = z * af1c2
        rf1c3 = z * af1c3
        rf2c1 = z * af2c1
        rf2c2 = z * af2c2
        rf2c3 = z * af2c3
        rf3c1 = z * af3c1
        rf3c2 = z * af3c2
        rf3c3 = z * af3c3

#Visualizacion Matriz "Resultado"
        print "MATRIZ Resultado"
        print ""
        print "[", rf1c1, rf1c2, rf1c3, "]"
        print "[", rf2c1, rf2c2, rf2c3, "]"
        print "[", rf3c1, rf3c2, rf3c3, "]"
        print ""

#Opcion "5" Transpuesta
    elif x==5:
        
#Matriz "A"
        print "Ingrese la Matriz A"
        print ""
        af1c1=int(raw_input("Ingrese el valor de F1C1: "))
        af1c2=int(raw_input("Ingrese el valor de F1C2: "))
        af1c3=int(raw_input("Ingrese el valor de F1C3: "))
        af2c1=int(raw_input("Ingrese el valor de F2C1: "))
        af2c2=int(raw_input("Ingrese el valor de F2C2: "))
        af2c3=int(raw_input("Ingrese el valor de F2C3: "))
        af3c1=int(raw_input("Ingrese el valor de F3C1: "))
        af3c2=int(raw_input("Ingrese el valor de F3C2: "))
        af3c3=int(raw_input("Ingrese el valor de F3C3: "))
        print ""

#Visualizacion Matriz "A"
        print "MATRIZ A"
        print ""
        print "[", af1c1, af1c2, af1c3, "]"
        print "[", af2c1, af2c2, af2c3, "]"
        print "[", af3c1, af3c2, af3c3, "]"
        print ""

#Visualizacion Matriz "Resultado"
        print "MATRIZ Transpuesta"
        print ""
        print "[", af1c1, af2c1, af3c1, "]"
        print "[", af1c2, af2c2, af3c2, "]"
        print "[", af1c3, af2c3, af3c3, "]"
        print ""
    salir = raw_input("Desea realizar otra operacion?(S/N) ")
    print ""


Tambien es compatible con Android.

3 comentarios:

Programacion

Python Nivel Básico [Parte IV]

21:54 ANTRAX 3 Comments

Introducción 
En esta nueva parte veremos los distintos tipos de operaciones.
Comenzaremos con las más básicas que son la suma, resta, multiplicación y división.
Operaciones Básicas
Si bien hemos visto antes, se pueden asignar valores a las variables. Veremos primero un simple ejemplo de operaciones simples.

En el ejemplo anterior he usado dos números el 4 y el 2.
Ahora reemplazaremos esos dos números por variables.

Ahora veremos de qué forma se pueden utilizar estas variables.

Como en el ejemplo, puedo usar números, variables o números y variables juntos combinados.
Ahora veremos como asignarle un valor a una variable por medio de una operación:

Con esto podemos ver como a través de la multiplicación de a y b reemplazaron a z. Ahora podemos usar esa variable z para una nueva operación:

Operaciones combinadas
Ya vimos como usar las variables, operaciones básicas y como crear nuevas variables a partir de una operación.
Ahora veremos como hacer operaciones más complejas en donde tengamos más de una operación junta.

Teniendo el valor de z, a y b pude hallar el valor de d.
Reemplazando la ecuación anterior quedaría 

d= 6*(8-(4+2))
d= 6*(8-(6))
d= 6*2
d=12

Operaciones en conjuntos

Ahora veremos operaciones en conjuntos.
Escribimos a+2, b+3
Tendremos como resultado

Nos separo los resultados.
Si ahora usamos números con decimales, también los resolverá y separara.
Escribimos 2.0**2, 8/4.0

Si escribimos valores con puntos flotantes, el resultado también será con puntos flotantes.
Si hacemos una operación en la que el resultado sea extenso, como por ejemplo:

Con el comando print podemos hacer que nos redondee el número y nos de un resultado no tan largo

Ahora veremos la diferencia de poner / y //
Como ya sabemos la / sirve para dividir dos valores. El doble slash sirve para lo mismo, solo que en caso de que se divida un número con punto flotante, pone en cero a los decimales.
Ahora lo veremos con un ejemplo.

Operaciones con BITS

XOR

 Existe la función OR Exclusiva o XOR que en Python se representa con el símbolo ^
Vamos a nuestra ventana interactiva y asiganmos:

AND

La funcion AND se representa con &. Usaremos los valores asignados anteriormente en x e y
0001
0100
0000

Como vemos, debe dar como resultado 0

OR

La funcion OR se representa con el siguiente simbolo |

x= 1 (0001 binario)
y=4  (0100 binario)

OR operara bit a bit  según su tabla de verdad y nos dará como resultado 5.
Donde A y B son los bits de una misma columna y X será el resultado

0001
0100
0101

Vemos que dará 0101 binario o sea 5 decimal.

3 comentarios:

Programacion

Python Nivel Básico [Parte III]

10:01 ANTRAX 1 Comments

Introducción:
  En esta tercer parte practicaremos como importar módulos de manera más compleja.
  Los módulos en Python son un pilar muy grande, y es necesario aprenderlo correctamente.

Asignación de variables
Creamos un nuevo Script.
Asignamos valores a tres variables

Lo guardamos y le damos a RUN para ver como concatena las tres variables y las imprime en pantalla.
Ahora lo importamos
Las próximas veces para poderlo correr debemos darle un reload o apretar el botón RUN
Una vez que ya lo tenemos importado, podemos usar las variables de ese modulo en otros Scripts.
Como se ve en la imagen importe el modulo Script1 y utilice la variable b.
Ahora crearemos un nuevo script en el que importe al modulo que creamos y me imprima la variable b.
Si lo guardamos y le damos a RUN, podremos ver el resultado

Existe una forma de importar una sola variable de un modulo dejando a las demás de lado.
En caso de que solo queramos usar la variable b de nuestro Script, debemos escribir from Script1 import b

Como podemos ver solo imprime la variable b ya que solo importo a esa.
Si damos print a dirá que no existe, esto es porque no la importo.

Librería de módulos

Si cerramos el programa y lo volvemos a abrir, podremos notar que no se podrá importar nuestro modulo. Esto se debe a que el modulo no se encuentra guardado en la librería.
Como vimos en la parte II existe un directorio que es en donde se guardan las librerías
Copiaremos ahí nuestros dos Scripts y los importaremos.

Esto sirve por si cerramos el programa y lo volvemos a abrir, tendremos siempre nuestros módulos a disposición como si fuesen de Python.
Para demostrarlo, cerraremos el programa y lo volveremos a abrir importando ambos módulos.

De esta manera siempre podremos usar nuestros módulos y las variables de nuestros módulos.
Otra de las formas de saber si mi modulo está incorporado a la librería de Python es dando clic en TOOLS y luego en Browse PythonPath

En la lista de la izquierda podremos ver nuestro modulo en la librería

Y si lo abrimos podremos ver su contenido

 
Si colocamos el comando dir seguido del nombre del modulo entre paréntesis, podremos ver los atributos que tiene

Si vemos el modulo o Script2

Podremos ver que como no tiene Atributos propios, muestra los internos de Python.

1 comentarios:

Programacion

Python Nivel Básico [Parte II]

15:11 ANTRAX 3 Comments

Introducción:
En esta segunda parte veremos cómo poner pausas en nuestros scripts para que al ejecutarlos no se cierren inmediatamente, y también veremos cómo importar módulos.

Incorporando pausas:
En la primera parte vimos como crear scripts y guardarlos.

Pero al ejecutarlos en Windows, se abre la consola y se cierra inmediatamente sin darnos tiempo a ver el contenido.
Es por eso que incorporaremos al script una pausa para poder ver el contenido.

Añadimos el comando input seguido del mensaje que deseamos que muestre en pantalla, en este caso dirá “Presione Enter para continuar”.
Si guardamos el Script y lo corremos:

Como vemos en la imagen, ahora si muestra el contenido. Al presionar Enter se saldrá ya que no hemos insertado más líneas.
Si deseamos que la pausa sea menos visible, podemos usar el comando input de la siguiente manera:

Al correr el programa veremos lo siguiente en la consola:

Como se puede apreciar, no muestra ningún mensaje, y al presionar Enter se cerrara ya que no hay más líneas en el código.

Importar Módulos
Ahora veremos cómo importar módulos.
Vamos a la ventana interactiva y escribimos import.sys y presionamos Enter. Con esto habremos importado el modulo de sistema.
Ahora para ver que cosas trae este modulo, escribimos print sys.
Y se nos abrirá un cuadro con todo lo que trae:

En este ejemplo pondré Plataform y me dirá bajo que plataforma estoy trabajando:

Cualquier script hecho en Python si tiene extensión *.PY es un modulo.
Lo veremos ahora con un ejemplo.
Si a nuestro primer Script le importamos el modulo sys

Lo guardamos como Script1.py
Al correr el Script debería decir, Hola ANTRAX y mostrarnos la plataforma en la cual estamos trabajando.

Una vez que tenemos nuestro Script, veremos cómo importarlo en futuros Scripts. De esta manera podremos usar como módulos a los Scripts ajenos a los que tenemos por default.
Los Scripts se guardan en una carpeta especial, que es en la que tenemos toda nuestra librería.
La ruta del directorio suele ser: C:\Python27\Lib


Como podemos ver, ahí quedo el Script1.py
Ahora vamos a la consola:

Como podemos ver, escribí import Script1.py y me mostro lo que tenía en el primer script que hicimos.
Ahora vamos a la ventana interactiva e importamos el script1 y pediremos que nos muestre su contenido
Como podemos ver, nos dice <module 'Script1' from 'C:\Python27\lib\Script1.pyc'> Esto quiere decir que el Script esta, pero que no se le ha asignado ninguna variable.
Editaremos el Script1 y le asignaremos una.

Ahora vamos a la ventana interactiva e importamos nuestro modulo. Seguido a esto pedimos que nos imprima en la pantalla el Script1.z que será la variable que le asignamos.
Como resultado tendremos esto:

Nos mostrara lo que teníamos en esa variable.

Importar un modulo nuestro a un Script nuestro
Ya sabemos cómo crear módulos y scripts, ahora combinaremos los dos para importar nuestros módulos a nuestros Scripts.
Creare un Script2.py al cual le añadiré que me muestre la variable z del Script1

Como se puede ver, importo el Script1 y luego le pido que me muestre la variable z de ese script. Y por último que me imprima en la pantalla “Este es el Script2”
Lo guardamos y lo corremos. Tendremos como resultado lo siguiente:

Muestra lo de la variable z del Script1 y el texto que pusimos en el Script2. De esta manera habremos usado un modulo que no pertenece a nuestro sistema en un Script nuestro.
De esta forma podemos Armar nuestra propia librería con scripts

3 comentarios: