내 용어가 해제되어 있으면 용서해 주지만 옵션 argparse 인수에 서브 파서를 추가하는 방법을 찾고 있습니다. 각 args에 store_true
플래그가 있습니다.Argparse : store_true 플래그가있는 선택적 서브 파서
if args.shodan.html:
print("Doing a thing")
parser = argparse.ArgumentParser()
parser.add_argument("-r", "--reverse-dns", help="rDNS on host", action="store_true")
parser.add_argument("-s", "--shodan", help="perform SHODAN query on discovered IPs", action="store_true")
parser.add_argument("targets", help="IPv4 addresses to search for", nargs="+")
subparsers = parser.add_subparsers()
shodan_parser = subparsers.add_parser("shodan", help="SHODAN options")
shodan_parser.add_argument("--html", action="store_true")
shodan_parser.set_defaults(which='shodan')
출력 :
(venv)[[email protected] gumdrop]$ python gumdrop.py google.ca --shodan --html
usage: gumdrop.py [-h] [-r] [-e] [-s] targets [targets ...] {shodan} ...
gumdrop.py: error: too few arguments
(venv)[[email protected] gumdrop]$ python gumdrop.py --shodan --html google.ca askjeeves.ca
usage: gumdrop.py [-h] [-r] [-e] [-s] targets [targets ...] {shodan} ...
gumdrop.py: error: invalid choice: 'askjeeves.ca' (choose from 'shodan')
이상적으로, 나는 shodan_parser
subparser에 --html
의 부울 값을 참조하려면 다음 구문을 사용하고 싶습니다
제안 사항이 있으십니까?
Python 2가 맞습니까? 당신이 제공 할 계획 인 커맨드 라인 인수에 따라 예상 결과를 게시 할 수 있습니까? – RyPeck
예상 결과가 무엇을 의미하는지 확신 할 수 없습니다. 'shodan.html'에 부울 플래그를 설정할 수 있기를 원합니다.하지만 가능한지 확실하지 않습니다. –
그런 다음 입력하려는 명령 줄 인수의 예를 제공 할 수 있습니까? – RyPeck