Курс 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"

  1. Декораторы в Python
  2. CLI-инструмент howdoi
  3. Работа с очередями в Python
  4. Переопределение метода __rshift__
  5. Работа с YAML в Python
  6. Лямбда-функции в Python
  7. Функции с необязательными аргументами
  8. Область видимости переменных
  9. Ускоренный импорт библиотек
  10. Курсы Яндекс Практикум
  11. Особенности множеств в Python
  12. Метод __int__ в Python
  13. Создание пар из последовательностей
  14. Получение имени функции с помощью inspect
  15. Управление виртуальными средами в Python
  16. Активация Matplotlib в Jupyter
  17. Показ всплывающих окон Tkinter
  18. Документация функции help() в Python
  19. Удаление файлов с shutil.os.remove()
  20. Метод get для словаря
  21. Форматирование строк в Python
  22. Операции с комплексными числами
  23. Рациональные числа в Python
  24. Оптимизация методов в Python 3.7
  25. Функция enumerate() в Python
  26. Объединение, распаковка и деструктуризация
  27. Создание и использование модулей в Python
  28. Делегирование в Python
  29. Импортирование в Python
  30. Импорт объектов из модулей
  31. Фильтрация списка от «ложных» значений
  32. JMESPath в Python
  33. Обрезка изображения с Pillow
  34. Оценка выражений генератора в Python
  35. Использование функции product
  36. Циклы for в Python
  37. Установка виртуального окружения Python
  38. Обмен переменными в Jupyter
  39. Выражения-генераторы в Python
  40. Управление мышью и клавиатурой с Pyautogui
  41. Избегание циклических зависимостей классов в Python
  42. Метод setitem в Python
  43. Создание словарей с defaultdict()
  44. Поиск самого частого элемента

Marketello читают маркетологи из крутых компаний