2

私はPythonで次のコードを持っています:

group = parser.add_mutually_exclusive_group()
group.add_argument('-a', '--add', dest='name_to_add', help='Add a new group or a role to existing group')
group.add_argument('-u', '--upgrade', dest='name_to_upgrade', help='Upgrade a group with the new version')
group.add_argument('-r', '--remove', dest='name_to_remove', help='Remove a group')
group.add_argument('-l', '--list', dest="list_server_or_group_name", help='Get group or server state/configuration')

私の問題は「-l」オプションにあります。特定のグループをリストし、すべてのグループをリストできるようにしたい。現在私はそれをします:

"python my_script.py -l group_name"-特定のグループを一覧表示し、 "python my_script.py-lall"-すべてのグループを一覧表示します。

ただし、「pythonmy_script.py-l」だけですべてのグループを一覧表示したいと思います。この方法で実行できるようにするには、コードをどのように変更する必要がありますか?後でコードで確認するにはどうすればよいですか?

ありがとう、ArshavskiAlexander。

4

1 に答える 1

4

これは。では不可能optparseです。

ただし、に切り替えるoptparseargparse2.7または3.2以降)、次を渡すことができますnargs='?'

'?'。可能であれば、1つの引数がコマンドラインから消費され、単一のアイテムとして生成されます。コマンドライン引数が存在しない場合、デフォルトの値が生成されます。

group.add_argument('-l', '--list', dest="list_server_or_group_name",
                   help='Get group or server state/configuration',
                   nargs='?', default=None, const='all')
于 2012-08-01T13:38:49.593 に答える