【问题标题】:TypeError: 'NoneType' object is not iterable when i use argparseTypeError: \'NoneType\' 对象在我使用 argparse 时不可迭代
【发布时间】:2022-12-10 23:25:24
【问题描述】:
def getOptions():
    parser = argparse.ArgumentParser(description='Parses Command.')
    parser.add_argument('-t','--train',nargs='+',help='Training data directories.')
    parser.add_argument('-i','--iteration',type=int,nargs='+',help='Number of iteration.')
    options = parser.parse_args()
    return options

我知道 parser.parse_args() 返回一个不可迭代的对象

我想在 for 循环中使用“options.train”,但我无法解决该错误。另外,vars 不适合我

【问题讨论】:

  • 那么你的问题到底是什么?
  • 显示脚本调用(带有命令行参数)options 以及您尝试使用它的方式。从简短的问题中,很难说出您在哪里遇到错误。

标签: python argparse


【解决方案1】:

您遇到此错误的原因是,您需要提供火车 parse_args() 方法的参数如下:

import argparse


def get_options():
    parser = argparse.ArgumentParser(description='Parses Command.')
    parser.add_argument('-t', '--train', nargs='+', help='Training data directories.')
    parser.add_argument('-i', '--iteration', type=int, nargs='+', help='Number of iteration.')
    options = parser.parse_args(['-t', 'train1', 'train2'])
    return options


options = get_options()
print('train arguments:', options.train)

for option in options.train:
    print('train:', option)

上述代码的结果如下:

train arguments: ['train1', 'train2']
train: train1
train: train2

【讨论】:

    猜你喜欢
    • 2012-08-25
    • 1970-01-01
    • 2017-08-29
    • 2016-08-30
    • 2014-11-21
    • 1970-01-01
    相关资源
    最近更新 更多