How to iterate over arguments

user3654650 picture user3654650 · Nov 28, 2014 · Viewed 38.1k times · Source

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?

Answer

James picture James · Nov 28, 2014

Please add 'vars' if you wanna iterate over namespace object:

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