如何通过argpars声明两个不同的类型变量

时间:2019-01-28 11:23:11

标签: python argparse

Argps方法需要接受两种不同类型的变量,在这种情况下,只有字符串数组可以接受值,而int变量则不能。我该如何解决?还是这是处理案件的最佳方法?感谢所有人,我是个非常新的白色蟒蛇

python代码:

session.serach_by_name(["peter"], amount=2)

原始方法:

py quickstart.py --l peter john 2 (the value 2 which is amount is not being accepted )

命令行:

CustomerIDClustered.groupby(['CustomerID','cluster']).count()


                    Count
CustomerID cluster       
1893       0            1
           1            2
           2            5
           3            1
2304       2            3
           3            1
2655       0            1
           2            1
2850       1            1
           2            1
           3            1
3648       0            1

1 个答案:

答案 0 :(得分:1)

您要传递单词列表和一些数字吗?只需添加另一个参数:

def read_cmdline_args():

    parser = argparse.ArgumentParser()
    parser.add_argument("-s", "--search_by_name", type=str, nargs='+', help="Search by name")

    # added argument
    parser.add_argument("-a", "--amount", type=int, default=0, help="Some amount")

    return parser.parse_args()

现在您可以像这样运行脚本:

py quickstart.py -s peter john -a 2

已解析的参数为:

Namespace(amount=2, search_by_name=['peter', 'john'])