Я пишу скрипт, который хочу запускать в двух режимах:
- - testall - дополнительные аргументы не требуются
- - test - аргументы: -f, -t, -sm необходимо
, но я не знаю, как закодировать этот лог c с помощью модуля argparse. Идеи? Когда я запускаю
python3 test_argparse.py --testall
выдает:
usage: test_argparse.py [-h] [--testall TESTALL | --test TEST] [-f FROM]
[-t TO] [-sm {preserve,noresdir}]
test_argparse.py: error: argument --testall: expected one argument
Пока ...
import argparse
parser = argparse.ArgumentParser(description="Tests fast copy operation. Checks MD5 hashes, file and directory "
"permissions, sync modes (sync, keep, recopy, resync, preserve, resdir, "
"noresdir) and outputs the result to MySQL database on Nemo")
group = parser.add_mutually_exclusive_group()
group.add_argument("--testall", help="tests copy operations between all available zones", type=str)
group.add_argument("--test", help="tests copy operation between specific zones", type=str)
parser.add_argument("-f", "--from", help="name of the zone to copy from")
parser.add_argument("-t", "--to", help="name of the zone to copy to")
parser.add_argument("-sm", "--syncmode", help="mode to use when copying", choices=['preserve', 'noresdir'])
args = parser.parse_args()
if __name__ == "__main__":
print(vars(args))
if args.testall:
print('Testing TESTALL mode')
elif args.test:
print('Testing TEST mode')
else:
print('Testing everything else')