나는 다음과 같은 매개 변수 걸리는 매우 간단한 스크립트를 만들고있어 :위치 지정 인수가 없으면 도움말을 인쇄 하시겠습니까?
-p --port integer, optional, default 5050
-f --fork boolean, optional, default False
action string, required, needs to be either start or stop
내가 argparse이 구현하려고했습니다,하지만 액션 문자열이 제공되지 때 도움이 프린트되지 않는, 그냥 모든 추한 실패 있어요 -like :
usage: __init__.py [-h] [-p PORT] [-f] {start,stop}
__init__.py: error: argument action: invalid choice: '__init__.py' (choose from 'start', 'stop')
"시작"또는 "중지"를 전달해도 동일한 메시지가 표시됩니다. 여기 내 코드 :
parser = argparse.ArgumentParser(description="Start or stop the server.",
epilog="If you don't know what you're doing, run. Run for your life.\n")
parser.add_argument("-p", "--port", type=int, nargs=1, default=5050,
dest="port", help="The port to run the server on.")
parser.add_argument("-f", "--fork", action="store_true", default=False,
dest="fork", help="Fork to background? Default is false.")
parser.add_argument("action", type=str, choices=("start","stop"), help="Whether to 'start' or 'stop' the server.")
내가 뭘 잘못하고 있니? 바라건대 내 의도는 내 코드에서 꽤 분명하다.
어떻게'__init __. py'를 호출합니까? 'python __init__.py __init __. py'를 호출하는 것처럼, 왠지 __init.py__가 첫 번째 인수로 제공되고 있습니다. – unutbu
'parser.parse_args()'를 어떻게 호출할까요? 'parser.parse_args ([ 'start'])'라고 말하면'Namespace' 객체가 반환됩니다. – chepner