Я использую функцию, основанную на argparse, чтобы использовать ее с различными опциями и вычислениями для этих опций.
Это прекрасно работает:
def parseArgument(argv, abv, name, hdescription):
parser=argparse.ArgumentParser(description='Show calculated data')
parser.add_argument(abv,
name,
help = hdescription,
action = "store_true",
)
args=parser.parse_args()
return args
args_h = parseArgument(['-y'],"-y", "--humedity", "Calculate humedity average", False)
if args_h.humedity:
print("\nHUMEDITY CYCLE: ", DPV(w, 2, HR_CYCLE, count_NC))
Но когда я пытаюсьчтобы добавить больше опций (args_t.temperature
), я получу error: unrecognized argument -y
def parseArgument(argv, abv, name, hdescription):
parser=argparse.ArgumentParser(description='Show calculated data')
parser.add_argument(abv,
name,
help = hdescription,
action = "store_true",
)
args=parser.parse_args()
return args
args_h = parseArgument(['-y'],"-y", "--humedity", "Calculate humedity average", False)
args_t = parseArgument(['-t'],"-t", "--tempature", "Calculate temp average", False)
if args_h.humedity:
print("\nHUMEDITY CYCLE: ", DPV(w, 2, HR_CYCLE, count_NC))
elif args_t.temperature:
print("\nTEMPERATURE CYCLE", DPV(w,1,TR_CYCLE,count_NC))
Я ожидаю использовать эту структуру с различными опциями с функцией argparse:
if args_h.humedity:
...
elif args_t.temp:
...
elif args_other.other:
...
Когда я запускаю script.py -y
usage: cycle.py [-h] [-t]
cycle.py: error: unrecognized arguments: -y```
**When I use script.py -h**
```usage: cicly.py [-h] [-y]
optional arguments:
-h, --help show this help message and exit
-y, --humedity Calculates humedity average
```
**doesn't show [-t]**