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

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

Python Лабораторна 35: Керування зовнішніми командами через subprocess

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

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

Тема: Підпроцеси і shell

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

Meta: навчитися викликати системні утиліти і не ламати безпеку через shell True.



Krok 1. Створити файл src/app/proc35.py.

Komandi: cd ~/python_lab1/src; touch app/proc35.py



Krok 2. Написати функцію яка викликає ls через subprocess run без shell.

Poyasnennya: передай список аргументів.



Krok 3. Вивести код виходу і стандартний вивід команд.



Krok 4. Спробувати виклик з неправильним каталогом і побачити помилку.



Krok 5. Продемонструвати ризик використання shell True з рядком який включає змінні користувача.

Poyasnennya: тільки для навчання, не запускай небезпечні команди.



Krok 6. Оновити функцію так щоб вона ніколи не використовувала shell True для зовнішніх даних.



Krok 7. Додати функцію яка повертає текстовий вивід команди для подальшого парсингу.



Krok 8. Занотувати приклади корисних інтеграцій через subprocess, наприклад виклик git або системних моніторів.



Krok 9. Продумати як обробляти таймаут виконання процесу через параметр timeout.



Krok 10. Mini zvit.

Zavdannya: опиши правила безпеки при роботі з subprocess у сервісах які приймають користувацький ввід.