:私はargparseでこれを実装しようとしましたが、アクション文字列が提供されていないとき、それは助けを印刷していないポジション引数がない場合はヘルプを表示しますか?私は、次のパラメータを取りますかなり単純なスクリプト作ってるん
-p --port integer, optional, default 5050
-f --fork boolean, optional, default False
action string, required, needs to be either start or stop
を、それだけですべての醜いを失敗しています-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