Dup Ver Goto 📝

Python's argparse module

To
47 lines, 111 words, 1530 chars Page 'ArgParse_01' does not exist.

Examples

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

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)