Курс Python → Модуль subprocess: запуск внешних команд
Модуль subprocess в Python предоставляет возможность выполнения внешних команд из программы на Python. Это может быть полезно, если вам нужно взаимодействовать с операционной системой или другими приложениями на уровне командной строки. Один из основных методов этого модуля — subprocess.run, который позволяет запускать команды и получать результаты их выполнения.
Для использования функции subprocess.run с опцией capture_output=True необходимо иметь версию Python 3.7 и выше. Это позволяет перехватывать вывод команды и получать его в виде байтов. Если вы хотите интерпретировать вывод как текст, вы можете добавить опцию text=True. Это упрощает работу с текстовыми данными, полученными от выполненной команды.
import subprocess
result = subprocess.run(["ls", "-l"], capture_output=True, text=True)
print(result.stdout)
Метод input в subprocess.run позволяет передать входные данные для выполнения команды. Например, если вам нужно передать данные в команду, которая их ожидает через стандартный ввод, вы можете использовать этот метод. Это особенно полезно при автоматизации задач, где вам нужно запускать команды с определенными входными данными.
Использование модуля subprocess требует осторожности, так как выполнение внешних команд может быть опасным из-за уязвимостей безопасности. Всегда проверяйте входные данные, которые вы передаете в команду, чтобы избежать возможных атак через командную строку. Также рекомендуется использовать абсолютные пути к исполняемым файлам, чтобы избежать проблем с поиском исполняемых файлов.
Другие уроки курса "Python"
- Введение в PyTorch
- Проверка запуска скрипта или импорта модуля
- Базовые объекты Python
- Функция zip() в Python
- Работа с итераторами через срезы
- Работа с Requests для HTTP-запросов
- Оператор in для Python
- Функция count() в Python
- Метод ior для битовых операций
- Сортировка с параметром key
- Метод rsub в Python: расширение функциональности вычитания
- Операторы Splat и splatty-splat
- Методы Python для работы с данными
- Разработка Telegram-ботов
- Распаковка аргументов в Python
- Строки в Python: апострофы и кавычки
- Избегание циклических зависимостей классов в Python
- Транспонирование 2D-массива с помощью zip
- Генераторы по генератору
- Работа с изменяемыми коллекциями
- Ноутбуки AMD Ryzen ™ 4000: мощность и эффективность
- Ускорение обработки данных с %autoawait
- Работа со списками
- Функции классификации комплексных чисел
- Оптимизация сравнения в Python
- Python Translator: создание локальных переводчиков
- Логирование с Loguru
- Преобразование range в итератор
- Удаление falsy-значений из списка с помощью filter
- Представление бесконечности в Python
- Очистка данных в Python
- Прокачанный трейсинг ошибок
- Применение команды break
- Удаление элементов из списка в Python.
- Список и кортеж в Python
- Работа с GitHub в Telegram
- Форматирование строк в Python
- Замыкания в Python
- Поиск файлов по шаблону
- Изменение списка срезами
- Удаление элементов из списка
- Повторение элементов в Python
- Объединение кортежей в Python
- Таймер обратного отсчета
- Анонимные функции в Python
- Тип данных TypeVarTuple















