Skip to content

Latest commit

 

History

History
81 lines (59 loc) · 2.94 KB

Command-line_argument_parsing_(argparse).md

File metadata and controls

81 lines (59 loc) · 2.94 KB

Scripting Abilities: Command-line Argument Parsing (argparse)

Overview of Command-line Argument Parsing

Command-line argument parsing is a common task in Python scripting where you pass parameters externally to a script to control its execution. Python's argparse module is a powerful tool for creating user-friendly command-line interfaces.

Using argparse

The argparse module makes it easy to write user-friendly command-line interfaces and allows the user to specify the inputs from the terminal.

Basic Steps
  1. Import the Module:

    import argparse
  2. Create a Parser: Create an ArgumentParser object which will hold all the information necessary to parse the command line into Python data types.

    parser = argparse.ArgumentParser(description='Example script.')
  3. Add Arguments: Use the add_argument method to specify which command-line options the program is willing to accept.

    parser.add_argument('echo', help='echo the string you use here')
    parser.add_argument('--verbosity', help='increase output verbosity', action='store_true')
  4. Parsing Arguments: Call parse_args() to convert the args at the command line into an object with attributes.

    args = parser.parse_args()
  5. Using the Arguments: Access the arguments using the dot notation.

    if args.verbosity:
        print(f"Verbosity turned on. Input: {args.echo}")
Example Script

Here's a simple script (example.py) that echoes the user input and optionally increases verbosity:

import argparse

def main():
    parser = argparse.ArgumentParser(description='Example script.')
    parser.add_argument('echo', help='echo the string you use here')
    parser.add_argument('--verbosity', help='increase output verbosity', action='store_true')
    args = parser.parse_args()

    if args.verbosity:
        print(f"Verbosity turned on. Input: {args.echo}")
    else:
        print(args.echo)

if __name__ == '__main__':
    main()

You can run this script from the command line like so:

python example.py hello --verbosity

Best Practices

  • Meaningful Names: Choose argument names that are meaningful and easy to understand.
  • Help Messages: Provide clear help messages for each argument.
  • Default Values: Set sensible defaults where appropriate.
  • Error Handling: argparse automatically generates error messages for invalid arguments, but you can also customize error handling as needed.

Conclusion

argparse is a robust and flexible module for parsing command-line arguments in Python. It simplifies the process of creating command-line interfaces, making it easy to build scripts that are user-friendly and maintainable. By following best practices in defining and handling arguments, you can create scripts that effectively handle various input scenarios and provide a great user experience.