簡體   English   中英

argparse:store_true和int同時出現

[英]argparse: store_true and int at same time

我正在使用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')

問題是我無法區分python myscript.pypython 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)

% test.py
Namespace(temperature=None)
% test.py -t
Namespace(temperature=60)
% test.py -t 30
Namespace(temperature=30)

我以前沒用過argparse。 但是最近我在docopt https://github.com/docopt/docopt上看到了一個讓我感到震驚的演示文稿。

也許試一試?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM