python的argparse错误

Pau*_*aul 7 python namespaces argparse

报告此错误的位置:TypeError:'Namespace'对象不可迭代

import argparse

def parse_args():
    parser = argparse.ArgumentParser(add_help=True)
    parser.add_argument('-a', '--aa', 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.parse_args()

def main():
    (options, args) = parse_args()

if __name__ == '__main__':
    main()
Run Code Online (Sandbox Code Playgroud)

use*_*272 11

您的问题与此行有关:

(options, args) = parse_args()
Run Code Online (Sandbox Code Playgroud)

这似乎是被弃用的"optparse"的成语.

使用没有"options"的argparse习语:

import argparse
parser = argparse.ArgumentParser(description='Do Stuff')
parser.add_argument('--verbosity')
args = parser.parse_args()
Run Code Online (Sandbox Code Playgroud)


Rob*_*obᵩ 4

尝试:

args = parse_args()
print args
Run Code Online (Sandbox Code Playgroud)

结果:

$ python x.py -b B -aa
Namespace(aa=True, b='B', c=None)
Run Code Online (Sandbox Code Playgroud)