Найти в Дзене
programmer's notes (python and more)

Программирование ня языке Python. Пример простого командного интерпретатора с использованием subprocess, signal и обработку исключений

Доброго времени суток, читатели, зрители моего канала programmer's notes. Не забывайте подписываться и писать свои комментарии к моим статьям и видео.

Пример программы эмуляции командной строки операционной системы

Сегодня "разгрузочный" день (от баз данных) и вместе с тем повторение пройденного. Простая программка, которая эмулирует обычную программную строку в терминале операционной системы. Предварительно вспомните старый материал, статью о библиотеке subprocess:

статьи об try-except:

Ну и статью о библиотеке signal:

Это не все статьи по данным темам, но я и так перечислил много, если станет интересно, то найдёте

Что я, собственно, хочу.

1. Написать программу, которая выполняет команды стандартной консоли операционной системы.

2. Вывести на консоль результат работы команды, в том числе и сообщения об ошибках.

3. Обеспечить обработку нажатия сочетаний клавиш ctrl+c и ctrl+z.

4. Обеспечить выход из программы по заданной команде (out).

Полноценная работа программы возможно только под Linux. Я бы был рад, если кто-то прислал мне аналог для Windows. Ну если соберусь, то сам напишу, но лень уже лезть глубоко в Windows

Вот собственно и всё. А это программа

текст программы см. ниже
текст программы см. ниже
primer194.py

Работа программы

>>>> ls /home

aquota.group
aquota.user
lost+found
user
vladislav

Обратите внимание, как устанавливается обработчик нажатия Ctl+Z

signal.signal(signal.SIGTSTP, handler)

Да, разберитесь, зачем метод decode() используется.

Ну, пока всё!

Пишите свои предложения и замечания и занимайтесь программированием, а также проектированием баз данных, хотя бы для поддержания уровня интеллекта.

Я обработал ваш сигнал и вы не исключение
Я обработал ваш сигнал и вы не исключение