When building command-line programs, it's often beneficial to allow users to pass lists as arguments. argparse makes this possible, providing several options to accomplish this.
nargs
To receive a list of arguments, utilize the 'nargs' parameter. Specify ' ' to accept one or more arguments, '*' to accept zero or more, '?' to accept zero or one, or a specific number (like 2) to accept that exact number of arguments.
parser = argparse.ArgumentParser()<br>parser.add_argument('-l', '--list', nargs=' ')<br>
This approach makes it easy for users to provide multiple arguments as a single input.
append
Alternatively, you can use the 'append' action to append each argument to a list as it is encountered.
parser.add_argument('-l', '--list', action='append')<br>
This method requires users to specify the flag multiple times, one for each argument they want to include in the list.
Avoid type=list
While it may seem intuitive to set 'type' to 'list,' this is not recommended as it returns a list of lists, not a flattened list. This can lead to unexpected behavior.
Example Usage
Consider a script where the user needs to pass a list of integers.
parser = argparse.ArgumentParser()<br>parser.add_argument('-l', '--list', nargs=' ', type=int)<br>
This allows the user to enter multiple integers, which are then automatically converted to a list of integers and stored in the 'list' variable.
Note:
The above is the detailed content of How can you pass a list of arguments to a command-line program using argparse?. For more information, please follow other related articles on the PHP Chinese website!