如果提供了参数,如何将参数用作int;如果不提供,则如何使用False(Python)?

时间:2019-12-03 02:46:49

标签: python arguments argparse

我有一个用Python编写的应用程序,可以从服务器获取数据(这是我们的另一个应用程序)。有时该服务器是生产服务器(远程托管),有时为了进行测试,我使用服务器的本地版本。我希望能够为参数--local提供端口的可选参数。如果未提供端口,则为默认端口。我一直在用argparse。

我特别需要以下内容:

python app.py

localhost = False
port = None

python app.py --local

localhost = True
port = 3002  # this is my default port

python app.py --local 1234

localhost = True
port = 1234

我可以使用两个单独的参数轻松完成此操作(--local为bool,-port为int),但我想知道是否可以在一个参数中完成。

到目前为止的代码:

import argparse

arg_parser.add_argument('-l', '--local', type=int, dest='localhost', default=3002,
                   help='set the server to be locally hosted and specify the port (default 3002)')

if args.localhost:
    localhost = True
    port = args.localhost
else:
    localhost = False
    post = None

0 个答案:

没有答案