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. Учебная ценность расширенного меню
Расширенное меню даёт сразу несколько сценариев обучения:
- сравнение похожих функций (
listdirvsscandir,renamevsreplace); - работа с метаданными (
os.path.*,os.stat,os.utime); - изучение окружения процесса (
os.environ,os.getenv); - системные сведения (
os.getpid,os.cpu_count).
В результате один скрипт становится удобным «тренажёром» по библиотеке os.