Search code examples
pythonargparse

How to iterate over arguments


I have such script:

import argparse

parser = argparse.ArgumentParser(
                description='Text file conversion.'
                )
parser.add_argument("inputfile",   help="file to process", type=str)
parser.add_argument("-o", "--out", default="output.txt",
                    help="output name")
parser.add_argument("-t", "--type", default="detailed",
                    help="Type of processing")

args = parser.parse_args()

for arg in args:
    print(arg)

But it doesnt work. I get error:

TypeError: 'Namespace' object is not iterable

How to iterate over arguments and their value?


Solution

  • Add vars if you want to iterate over a Namespace object:

     for arg in vars(args):
         print arg, getattr(args, arg)