mardi 2 août 2016

Python Tab Error message

I am working on developing a python cli network tool. the problem I am having on it, is that I have multiple options that you can select from and also a argparse section to tell what those options are. I have specifily used the tab key for spaceing when writing the script. however when I run the script I get this error message: ➤ python tiniGetHost.py -h File "tiniGetHost.py", line 27 if args.address: ^ TabError: inconsistent use of tabs and spaces in indentation

it seems no matter how I try to change it, it still keeps having the issue. also of note, it comes directly after args = parser.parse_args() which I am wondering it that is causing a problem with the following code. for the selection process, I am using a if / elif / else statement for the different socket options. I am hoping that I have coded this right, but and not sure do to lack of experience. here is the code so you all can see what I am talking about:

#!C:\Bin\Python35\python.exe
# 
import sys
import sys, os
import argparse
import socket


# Command Line interface setup
def main():
    try:
        # Command Line arg parse
        parser = argparse.ArgumentParser()
        parser.add_argument("-a", "--address", default="address", help="Gets IP address from host name." )
        parser.add_argument("-f", "--fqdn", default='address', help="Gets the FQDN address of server.")
        parser.add_argument("-d", "--addrinfo", default='address', help="Gets the FQDN address of server.")
        parser.add_argument("-l", "--local", default='address', help="gets inof on local host.")
        parser.add_argument("-pr", "--proto",  default='address', help="Translate an Internet protocol name to a constant suitable for passing as the (optional) third argument to the socket() function.")
        parser.add_argument("-n", "--nameinfo", default='address', help="gets name and port on remote host.")
        parser.add_argument("-Sn", "--servbyname", default='address', help="Translate an Internet service name and protocol name to a port number for that service.")
        parser.add_argument("-Sp", "--servbyport",  default='address', help="Translate an Internet port number and protocol name to a service name for that service.")
        parser.add_argument("-t", "--timeout", default='address', help="Return the default timeout in seconds for new socket objects.")
        parser.add_argument("-v", "--verbose",  default='address', help="increase output verbosity")
        args = parser.parse_args()


    if args.address:
        remoteServer = sys.argv[1]
    remoteServerIP = socket.gethostbyname(remoteServer)
    print (remoteServerIP)

    elif args.fqdn:
    remoteServer = sys.argv[1]
    remoteServerIP = socket.getfqdn(remoteServer)
    print (remoteServerIP)

    elif args.addrinfo:
    remoteServer = sys.argv[1]
    remoteServerIP = socket.getaddrinfo(remoteServer)
    print (remoteServerIP)

    elif args.local:
    remoteServerIP = socket.gethostname()
    print (remoteServerIP)  

    elif args.proto:
        remoteServer = sys.argv[1]
    remoteServerIP = socket.getprotobyname(remoteServer)
    print (remoteServerIP)

    elif args.servbyname:
    remoteServer = sys.argv[1]
    remoteServerIP = socket.getservbyname(remoteServer)
    print (remoteServerIP)

    elif args.servbyport:
    remoteServer = sys.argv[1]
    remoteServerIP = socket.getservbyport(remoteServer)
    print (remoteServerIP)

    elif args.timeout:
    remoteServer = sys.argv[1]
    remoteServerIP = socket.getdefaulttimeout(remoteServer)
    print (remoteServerIP)

    elif args.verbose:
    remoteServer = sys.argv[1]
    remoteServerIP = socket.gethostbyaddr(remoteServer)
    print (remoteServerIP)

    else:
    args.nameinfo
    remoteServer = sys.argv[1]
    remoteServerIP = socket.getnameinfo(remoteServer)
    print (remoteServerIP)


    except:
            e = sys.exc_info()[0]
            print (e)

    except KeyboardInterrupt:
    print ("You pressed Ctrl+C")
    sys.exit()

    except socket.gaierror:
    print ("Hostname could not be resolved. Exiting")
    sys.exit()

    except socket.error:
    print ("Couldn't connect to server")
    sys.exit()


if __name__ == '__main__':
    main()

Aucun commentaire:

Enregistrer un commentaire