Error de indentacion, en serio?

Iniciado por po6xsecpo, Octubre 22, 2014, 07:01:48 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Octubre 22, 2014, 07:01:48 PM Ultima modificación: Octubre 22, 2014, 07:20:04 PM por blackdrake
Se;ores, alguno sabe por que el compilador me dice que:

CitarFile "checkCDCProgramations.py", line 39
    print type(registro)
                       ^
IndentationError: unindent does not match any outer indentation level

He cuidado cada nivel de indentacion con 4 espacios por nivel. No se cual pueda ser el error.

Código: python
	

    #!/bin/usr/env python
    import MySQLdb
    import os
    import datetime
     
    from mail import Mail
     
    def main():
     
        # Establecemos la conexion con la base de datos
        bd = MySQLdb.connect("IP","user","pass","database" )
     
        # Preparamos el cursor que nos va a ayudar a realizar las operaciones con la base de datos
        cursor = bd.cursor()
     
        # Preparamos el query SQL para obtener todos los empleados de la BD
        sql = "select bla,bla,bla" #where estado = 'E';"
     
        try:
            # Ejecutamos el comando
                        cursor.execute(sql)
                        # Obtenemos todos los registros en una lista de listas
                        resultados = cursor.fetchone()
               
               
               
                        if resultados > 0:
                print type(registro)
                regs = registro[0]
                print type(regs)
                # Imprimimos los resultados obtenidos
                print "Total de fallidos encontrados = %d  " % (regs)
                if int(regs)>0:
                    sendAlert()
                    print "entra funcion alert()"
     
                    sendSMS(regs)
                    print "entra funcion sms()"
     
                else:
                    print "Todo ok esta dentro del rango normal de 0-40 fallidos"
     
        except Error:
                        print "Error: No se pudo obtener la data"
     
        # Nos desconectamos de la base de datos
        cursor.close()
        bd.close()
        print (datetime.datetime.now())
     
        def sendAlert():
            #Set the parameters for send the mail
            from_addr = ['[email protected]']
            to_addr_list = ['[email protected]']
            cc_addr_list = ['[email protected]']
            subject = 'Python-Mail-Test-alert'
            message = 'Alerta revisar CDC programacion, hay registro en estado E'
            login = '[email protected]'
            password     = 'pass.'
            smtpserver   = 'smtp.gmail.com:port'
     
            #create a new object Mail() type
            newMail=Mail()
     
            #call sendEmail method from class
            newMail.sendEmail(from_addr,to_addr_list,cc_addr_list,subject,message,login,password,smtpserver)
     
        def sendSMS(self,regs):
            os.system(r"Linux console command here")
     
    pass
     
    if __name__ == '__main__':
        main()





Aca el snippet en No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Hola
Fijate en la linea 29 y 30 del post..
Tenes un if, se supone que el print deberia estar dentro de ese if y no fuera como lo has hecho

Saludos!
ANTRAX


ahi esta mal indentado

Código: python
              if resultados > 0:
                print type(registro)
                regs = registro[0]
                print type(regs)
                # Imprimimos los resultados obtenidos
                print "Total de fallidos encontrados = %d  " % (regs)



queda asi

Código: python
#!/bin/usr/env python

import MySQLdb
import os
import datetime

from mail import Mail

def main():

    # Establecemos la conexion con la base de datos
    bd = MySQLdb.connect("IP","user","pass","database" )

    # Preparamos el cursor que nos va a ayudar a realizar las operaciones con la base de datos
    cursor = bd.cursor()

    # Preparamos el query SQL para obtener todos los empleados de la BD
    sql = "select bla,bla,bla" #where estado = 'E';"

    try:
        # Ejecutamos el comando
      cursor.execute(sql)
    # Obtenemos todos los registros en una lista de listas
            resultados = cursor.fetchone()
           
           
           
    if resultados > 0:
            print type(registro)
            regs = registro[0]
            print type(regs)
            # Imprimimos los resultados obtenidos
            print "Total de fallidos encontrados = %d  " % (regs)
            if int(regs)>0:
                sendAlert()
                print "entra funcion alert()"

                sendSMS(regs)
                print "entra funcion sms()"

            else:
                print "Todo ok esta dentro del rango normal de 0-40 fallidos"

    except Error:
    print "Error: No se pudo obtener la data"

    # Nos desconectamos de la base de datos
    cursor.close()
    bd.close()
    print (datetime.datetime.now())

    def sendAlert():
        #Set the parameters for send the mail
        from_addr = ['[email protected]']
        to_addr_list = ['[email protected]']
        cc_addr_list = ['[email protected]']
        subject = 'Python-Mail-Test-alert'
        message = 'Alerta revisar CDC programacion, hay registro en estado E'
        login = '[email protected]'
        password     = 'pass.'
        smtpserver   = 'smtp.gmail.com:port'

        #create a new object Mail() type
        newMail=Mail()

        #call sendEmail method from class
        newMail.sendEmail(from_addr,to_addr_list,cc_addr_list,subject,message,login,password,smtpserver)

    def sendSMS(self,regs):
        os.system(r"Linux console command here")

pass

if __name__ == '__main__':
    main()
Web: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Twitter: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta