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()