The argparse module in Python is used to handle command-line arguments, providing a simple way to create user-friendly CLI tools. It allows you to specify the arguments your program expects, automatically generates help and usage messages, and handles input validation.
Here are 10 Python code snippets demonstrating different uses of argparse for building command-line interfaces:
import argparse
def main():
parser = argparse.ArgumentParser(description="Greet a user with an optional age argument")
parser.add_argument("name", help="Your name")
parser.add_argument("-a", "--age", type=int, default=30, help="Your age (default is 30)")
args = parser.parse_args()
print(f"Hello, {args.name}, you are {args.age} years old!")
if __name__ == "__main__":
main()
3. Boolean Flag Argument
Copy
4. Multiple Positional Arguments
Copy
5. Argument Type Conversion
Copy
6. Argument Choices for Limited Values
Copy
7. Mutually Exclusive Arguments
Copy
8. Help and Usage Information
Copy
You can run this script with the --help flag to see the description and usage.
import argparse
def main():
parser = argparse.ArgumentParser(description="A tool with a boolean flag")
parser.add_argument("--verbose", action="store_true", help="Enable verbose output")
args = parser.parse_args()
if args.verbose:
print("Verbose mode is on")
else:
print("Verbose mode is off")
if __name__ == "__main__":
main()
import argparse
def main():
parser = argparse.ArgumentParser(description="Summing up numbers")
parser.add_argument("numbers", type=int, nargs="+", help="Numbers to sum")
args = parser.parse_args()
print(f"The sum is: {sum(args.numbers)}")
if __name__ == "__main__":
main()
import argparse
def even_or_odd(value):
ivalue = int(value)
if ivalue % 2 != 0:
raise argparse.ArgumentTypeError(f"{value} is not an even number")
return ivalue
def main():
parser = argparse.ArgumentParser(description="Check if a number is even")
parser.add_argument("number", type=even_or_odd, help="An even number")
args = parser.parse_args()
print(f"You entered the even number: {args.number}")
if __name__ == "__main__":
main()
import argparse
def main():
parser = argparse.ArgumentParser(description="Choose a color")
parser.add_argument("color", choices=["red", "green", "blue"], help="Pick a color")
args = parser.parse_args()
print(f"You selected the color: {args.color}")
if __name__ == "__main__":
main()
import argparse
def main():
parser = argparse.ArgumentParser(description="Choose either an option A or B, but not both")
group = parser.add_mutually_exclusive_group()
group.add_argument("--option-a", action="store_true", help="Option A")
group.add_argument("--option-b", action="store_true", help="Option B")
args = parser.parse_args()
if args.option_a:
print("Option A selected")
elif args.option_b:
print("Option B selected")
else:
print("No option selected")
if __name__ == "__main__":
main()
import argparse
def main():
parser = argparse.ArgumentParser(description="A command-line tool with help information")
parser.add_argument("name", help="Your name")
parser.add_argument("-a", "--age", type=int, help="Your age")
args = parser.parse_args()
print(f"Hello, {args.name}!")
if args.age:
print(f"You are {args.age} years old.")
if __name__ == "__main__":
main()
import argparse
def create(args):
print(f"Creating resource with name: {args.name}")
def delete(args):
print(f"Deleting resource with name: {args.name}")
def main():
parser = argparse.ArgumentParser(description="A CLI with subcommands")
subparsers = parser.add_subparsers()
# Subcommand 'create'
create_parser = subparsers.add_parser("create", help="Create a resource")
create_parser.add_argument("name", help="Name of the resource")
create_parser.set_defaults(func=create)
# Subcommand 'delete'
delete_parser = subparsers.add_parser("delete", help="Delete a resource")
delete_parser.add_argument("name", help="Name of the resource")
delete_parser.set_defaults(func=delete)
args = parser.parse_args()
args.func(args)
if __name__ == "__main__":
main()
import argparse
def main():
parser = argparse.ArgumentParser(description="Read and process a file")
parser.add_argument("filename", type=str, help="Path to the file")
args = parser.parse_args()
with open(args.filename, "r") as file:
content = file.read()
print(content)
if __name__ == "__main__":
main()