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 argparsedefmain(): 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
4. Multiple Positional Arguments
5. Argument Type Conversion
6. Argument Choices for Limited Values
7. Mutually Exclusive Arguments
8. Help and Usage Information
You can run this script with the --help flag to see the description and usage.
9. Subcommands for CLI
10. File Argument Parsing
These examples demonstrate how to use argparse for different tasks, such as parsing simple arguments, handling default values, and supporting more complex features like subcommands and file input.
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()