Required arguments in argparse: at least one of a group
rurpy at yahoo.com
rurpy at yahoo.com
Sun Mar 24 17:41:45 EDT 2013
On 03/23/2013 10:04 AM, Marco wrote:
> Is there the possibility using the argparse module to group two or more
> arguments in order to have at least one of them required? For instance,
> I would like to have not an error only in the following cases:
>
> python finder.py --file myfile --dir mydir
> python finder.py --pattern mypattern --dir mydir
> python finder.py --file myfile --pattern mypattern --dir mydir
>
> where --dir is required, and --file _or_ --parser have to be specified.
> In other words, I want the parser prints an error message just in this case:
>
> python finder.py --dir mydir
How about something like:
p = argparse.ArgumentParser (description="...")
p.add_argument ('--dir', help="A dir (required).", required=True)
p.add_argument ('--pattern', help="A pattern. If not given, --file is required.")
p.add_argument ('--file', help="A filename. If not given, --pattern is required.")
args = p.parse_args()
if not args.file and not args.pattern:
p.error ('Either --pattern or --file is required.')
More information about the Python-list
mailing list