#!/usr/bin/env python import sys,argparse version_info=\ """ Frobnicator - version 0.1 Copyright (C) 2016 Assaf Gordon License: MIT """ def parse_command_line(): # Define parameters parser = argparse.ArgumentParser( formatter_class=argparse.RawDescriptionHelpFormatter, description="This is a frobnicator", version=version_info, epilog=""" This script frobnicates an input file. Example: $ %(prog)s -v FOO """) # Option parameters parser.add_argument("-V", "--verbose", help="be verbose", action="store_true") # an on/off feature, default 'on'. parser.add_argument('--feature', dest='feature', action='store_true', help="enable feature (default)") parser.add_argument('--no-feature', dest='feature', action='store_false', help="disable feature") parser.set_defaults(feature=True) # A numeric optional parameter, not required (could be None) parser.add_argument("-L", "--limit", metavar="N", type=int, help="Limit to N events (defaul: no limit)") # Positional parameter parser.add_argument('filename', metavar='FILE', help='file to process'); args = parser.parse_args() # Ensure optional numeric param is either undefined, or above 0 if (args.limit is not None) and args.limit<1: sys.exit("invalid limit (--limit %d)" % args.limit) return args if __name__ == "__main__": args = parse_command_line() if args.verbose: print "File to process:", args.filename