← До списку лабораторних по Python
Повний опис / сценарій лабораторної:
Meta: навчитися приймати аргументи з командного рядка і будувати дружній help.
Krok 1. Створити файл app/cli5.py.
Komandi: cd ~/python_lab1/src; touch app/cli5.py
Krok 2. Додати базовий парсер.
Komanda: printf "import argparse
def build_parser():
parser = argparse.ArgumentParser(prog="lab5", description="Demo CLI for lab5")
parser.add_argument("--verbose", action="store_true", help="print more details")
sub = parser.add_subparsers(dest="command")
p_sum = sub.add_parser("sum", help="sum numbers")
p_sum.add_argument("numbers", nargs="+", type=int)
return parser
def main():
parser = build_parser()
args = parser.parse_args()
if args.command == "sum":
total = sum(args.numbers)
if args.verbose:
print(f"Summing {args.numbers} equals {total}")
else:
print(total)
if __name__ == "__main__":
main()
" > app/cli5.py
Krok 3. Запустити help.
Komanda: export PYTHONPATH=$(pwd); python app/cli5.py --help
Krok 4. Перевірити підкоманду sum.
Komanda: python app/cli5.py sum 1 2 3
Krok 5. Використати прапорець verbose.
Komanda: python app/cli5.py --verbose sum 4 5 6
Krok 6. Спробувати виклик без підкоманди і подивитися помилку.
Komanda: python app/cli5.py
Poyasnennya: за замовчуванням args.command дорівнює None.
Krok 7. Додати обробку випадку коли підкоманда не вказана.
Poyasnennya:наприклад друк help через parser.print_help.
Krok 8. Перенести логіку main у окрему функцію для тестів.
Poyasnennya: так CLI легше тестувати через unit тести.
Krok 9. Занотувати структуру для більших CLI з кількома підкомандами.
Krok 10. Mini zvit.
Zavdannya: опиши різницю між argparse і бібліотеками типу click з точки зору зручності.