08_Интерактивность_и_автоматизация.md - YaroslavGit28/os.sys-PY GitHub Wiki

08. Интерактивность и автоматизация


8.1. Интерактивный режим (как сейчас)

Текущая версия проекта — полностью интерактивная:

  • пользователь видит меню;
  • вводит выбор;
  • каждый раз подтверждает действия через input("Нажмите Enter...").

Это удобно для учебных целей: видно, какая функция os за что отвечает, можно добавлять print и смотреть поведение.

В новой версии меню охватывает 16 действий: от os.listdir/os.scandir до os.stat, os.access, os.environ, os.getpid и os.system.


8.2. Потенциальный «скриптовый» режим (без меню)

Тот же код можно было бы использовать для автоматических сценариев, если бы мы:

  • принимали аргументы командной строки;
  • не спрашивали пользователя каждый раз.

Пример без меню (идея, не реализация в проекте)

import sys
import os
from pathlib import Path

def make_dir_in(path_str: str, name: str):
    base = Path(path_str)
    os.mkdir(base / name)

if __name__ == "__main__":
    # python script.py "C:\Users\Windows\Desktop" "reports"
    base = sys.argv[1]
    folder = sys.argv[2]
    make_dir_in(base, folder)

8.3. График: «уровень автоматизации»

Уровень автоматизации
^
|                  Скрипты на Python
|                      ******
|                      ******
|        Меню на Python ******
|            *******    ******
|            *******         
| Ручной режим ОС *******     
+------------------------------> контроль пользователя
       много ручного      меньше ручного

8.4. Учебная ценность расширенного меню

Расширенное меню даёт сразу несколько сценариев обучения:

  • сравнение похожих функций (listdir vs scandir, rename vs replace);
  • работа с метаданными (os.path.*, os.stat, os.utime);
  • изучение окружения процесса (os.environ, os.getenv);
  • системные сведения (os.getpid, os.cpu_count).

В результате один скрипт становится удобным «тренажёром» по библиотеке os.