我有一个用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