布尔型的Argparser

时间:2019-06-19 14:17:01

标签: python python-3.x argparse

我试图传递bool类型的参数,并在运行代码时运行python main.py --tcpip=False。这对我不起作用。

我尝试将其更改为str类型,并且可以正常使用。

import argparse
parser = argparse.ArgumentParser(description="SSD and Gender Detection")
parser.add_argument("--tcpip",default = "True",type=str,help='transfer data via tcp/ip')
args = parser.parse_args()
print(args.tcpip)

if __name__ == '__main__':

    if(args.tcpip == "True"):
        send_data(count)

即使我以以下方式启动代码,它也会打印True python main.py --tcpip=False

1 个答案:

答案 0 :(得分:3)

您应该使用action参数:

    parser.add_argument("--tcpip",action='store_false',help='transfer data via tcp/ip')

现在tcpip的值默认为True,并且当使用参数--tcpip运行时,该值将更改为False。

>>> python main.py
True
>>> python main.py --tcpip
False

然后您可以将条件更改为:

if args.tcpip:
    send_data(count)

更多阅读-here