← До фільтрів та технологій

← До списку лабораторних по Python

Python Лабораторна 5: Створення CLI через argparse

Технологія: Python

Номер лабораторної: 5 · Рівень: middle

Тема: Аргументи командного рядка

Повний опис / сценарій лабораторної:

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 з точки зору зручності.