Quantcast
Channel: Howtos & more …– LANbugs
Viewing all articles
Browse latest Browse all 144

Python: Snippet Argumente für Command Line Tools mit getopt oder argparse

$
0
0

Mein persönlicher Favorit ist argparse, der Vollständigkeit halber aber beide Lösungen. getopt und argpase sind beide bei Python dabei und müssen nicht nachinstalliert werden.

GETOPT Ansatz:

#!/usr/bin/env python

import getopt
import sys

def usage():
    print "test1.py - A test script.\n" \
          " -p, --print Return a string \n" \
          " -h, --help Help"


def main():
    try:
        opts, args = getopt.getopt(sys.argv[1:], "p:h", ['print=', 'help'])

    except getopt.GetoptError as err:
        print str(err)
        sys.exit(2)

    for o, a in opts:
        if o in ('-p', '--print'):
            string_to_print = a

        if o in ('-h', '--help'):
            usage()
            sys.exit(2)

    if not 'string_to_print' in locals():
        print "-p or --print is not given or string is missing\n"
        usage()
        sys.exit(2)

    print string_to_print


if __name__ == "__main__":
    main()

ARGPARSE Ansatz:

#!/usr/bin/env python

import argparse

def main():
        parser = argparse.ArgumentParser(description="test3.py - A test script.")
        parser.add_argument('-p','--print',dest='string_to_print', required=True, help="String to print")
        args = parser.parse_args()

        print args.string_to_print

if __name__ == "__main__":
        main()

 


Viewing all articles
Browse latest Browse all 144