This question already has answers here:
Parsing boolean values with argparse
                                
                                    (15个答案)
                                
                        
                                6个月前关闭。
            
                    
我试图传递布尔类型的参数,并在运行代码时运行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

最佳答案

您应该使用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

关于python - bool 类型的Argparse ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56669868/

10-12 20:12