Dear Tutor I want to compare command line options, to options in a dictionary from a YAML file. The command line will over-ride the options in my file. (The YAML file, and its dictionary are not shown. That part works.)
My distilled code: ------------------------------------------------------------------------- $ cat h.py #!/usr/bin/python import argparse parser = argparse.ArgumentParser(description='Short sample app') def GetArgs(parser): parser.add_argument('-a', action="store_true", default=False) parser.add_argument('-b', action="store", dest="b") parser.add_argument('-c', action="store", dest="c", type=int) return parser GetArgs(parser) print(parser.parse_args()) print("But this doesn't iter through a b and c:") for k,v in parser.parse_args(): print('This arg is %s %s' % k, k[str(v)]) $ ------------------------------------------------------------------------- My error: $ h.py -a -b hi -c 42 Namespace(a=True, b='hi', c=42) But this doesn't iter through a b and c: Traceback (most recent call last): File "./h.py", line 16, in <module> for k,v in parser.parse_args(): TypeError: 'Namespace' object is not iterable $ How can I get parser to be iterable? After I get it to iter, I suppose that I'll be bitten by the boolean and integer type conversions. I'm not sure how to handle that either. Will 'str()' save me? Thanks a million (again!), Ken _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor