我正在使用argparse作为cli参数.我想要一个参数-t,进行温度测试.我还想指定温度测量的周期.
我想要:
python myscript.py -t 每60秒执行一次测量,
python myscript.py -t 30 每30秒进行一次测量,
python myscript.py 不做温度测量.
现在我这样做:
parser.add_argument('-t', '--temperature',
help='performs temperature test (period in sec)',
type=int, default=60, metavar='PERIOD')
Run Code Online (Sandbox Code Playgroud)
问题是我无法区分python myscript.py和python myscript.py -t.
它希望能够做这样的事情action='store_true',并type=int在同一时间.可能吗?还有其他办法吗?
谢谢!
使用const参数:
import argparse
parser = argparse.ArgumentParser()
parser.add_argument(
'-t', '--temperature',
help='performs temperature test (period in sec)',
type=int,
nargs='?',
const=60, # Default value if -t is supplied
default=None, # Default value if -t is not supplied
metavar='PERIOD')
args = parser.parse_args()
print(args)
Run Code Online (Sandbox Code Playgroud)
% test.py
Namespace(temperature=None)
% test.py -t
Namespace(temperature=60)
% test.py -t 30
Namespace(temperature=30)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
884 次 |
| 最近记录: |