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