ごとに異なる必須/使用可能なパラメータ私は、次の構造を持つ引数パーサを作成するために探しています:argparse - アクション
options [ 'backup', 'consistency_check', 'backup_and_consistency_check']
--database [ required ]
--action [ required choice from list options ]
--where_to_backup_to [ only required if --action is 'backup' ]
--what_file_to_consistency_check [ only required if --action is 'consistency_check']
--clean [ optional ]
--force [ optional if --clean is also in arguments ]
どのようにしていた選択に応じて、ArgumentParserモジュールを使用してオプションの引数を実装することができます別のコマンドライン引数として作成されます。私はArgParse作るために探してい
は、例えば、コマンドライン引数が、これは私がこれまでに得ている(私はそれが非常に少ないことを知っているものです
--d database_name --a backup --what_file_to_consistency_check /var/tmp/file.bak
ある場合に失敗しますが、私はしたくありません私は最初から右のそれをもらっていない場合、私は、動的オプションパーサとの位置パラメータのアクションを行うことだと思い
actions = ['backup', 'consistency_check', 'backup_and_consistency_check']
def create_parser():
parser = ArgumentParser(description='Parser for Backup/Consistency Check')
parser.add_argument('--database', '-d', dest='db', help='Database name', choices=get_active_database_list())
parser.add_argument('--action', '-a', dest='action', help='Action option', choices=actions)
# --where_to_backup_to [ only if action = backup ]
# --what_file_to_consistency_check [ only if action = cc ]
parser.add_argument('--clean', '-c', dest='clean', help='Clean')
# --force [ only available if --clean is also in arguments ]
return parser
各アクションに独自のサブパーザを付けます。ところで、従来は、行動を位置的な議論にしていました。 –
例を挙げることはできますか?それは実際のコードでなければならないことさえありません - ただの説明ですか?パーサ全体ではなく、特定の引数にサブパーザを追加できますか? – AK47
アクションに対する条件付きとは、* for *のサブパーサーであるため、ドキュメントの例がすべて適用されます。 –