2017-01-28 10 views
1

​​のadd_argument()関数を使うと、ユーザーは1つの必要な値を解析し、オプションの解析もできるようになりますか?Python:Argparse - 必須かつオプションの引数

たとえば、--read book [page]です。 pageを省略するか、読みたい特定のページを解析することができます。それを放置すると、ページ1から始まります。

私は多くのタスクを見ることができるので、これは簡単だと思われましたが、明らかにそうではありませんか?

私はPython 3+を使用しています。

+0

'+は' '--read'ことを言うための唯一の方法であります1つ以上の引数が必要です。上限を設定する方法はありません。の用法 '?' 'page'は' page'を 'read'から連結解除します。とにかく、 'nargs'の選択肢で遊んでください。 – hpaulj

答えて

0

あなたは(数として解析される可能性もtype=int)コール内nargs='?'を追加し、デフォルトのための1の値:

parser.add_argument('--read', dest='book', help='book to read') 
parser.add_argument('page', nargs='?', default=1, type=int, help='page number') 
+0

* book *(最初の引数)が実際に必要であるため、 'nargs = '+''はより適合します。 nargsの+は少なくとも1つの引数がない場合にエラーを返します。この場合は合格となります。 – kecer

+0

私が知る限り、 'nargs ="? "'は、オプションの引数が1つでも必要な場合にも使用されます。したがって、 'book'が必要な値であることを確認することはできません。 – xvx

+0

ああ、私は完全に見落とす 'nargs =" + "'。オプションの引数を制限する方法はありますか? – xvx

関連する問題