title: Python's argparse module tags: python argparse # Examples ```py parser = argparse.ArgumentParser( prog='sl', description='show last files in dir (defaults to Downloads)') parser.add_argument('-n','--number',type=int) parser.add_argument('-d','--dir') ``` ```py parser = argparse.ArgumentParser( prog='regexcut', description='cut by regex') parser.add_argument('-q','--ignore_missing_fields',action='store_true') parser.add_argument('-F','--raw_delimiter',action='store_true') parser.add_argument('-D','--output_delimiter',type=str) parser.add_argument('-d','--delimiter',type=str, default=" ") parser.add_argument('rest',nargs="*") ns = parser.parse_args() ``` ```py parser.add_arugment('-o','--optional',required=False) parser.add_argument('-O','--option',action="append") ``` ### Metavar ``` parser.add_argument('-d','--delimiter',type=str, default=" ",metavar="DELIM") ``` The `--help` infers the metavar from the long option name (e.g. `DELIMITER`) unless overridden by the `metavar='WHAT'` option. ## Custom Argument Types ```py import argparse class StoreCommaSeparatedIntegers(argparse.Action): def __call__(self, parser, namespace, values, option_string=None): # Convert comma-separated values into a list of integers int_list = list(map(int, values.split(','))) setattr(namespace, self.dest, int_list) parser = argparse.ArgumentParser() parser.add_argument("--numbers", action=StoreCommaSeparatedIntegers, help="Comma-separated list of integers") args = parser.parse_args() print(args.numbers) ```