Курс 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. Описание скриптов в README
  2. Операции с числами в Python
  3. Возврат нескольких значений
  4. Python groupby() из itertools: работа с повторяющимися элементами
  5. Изменение элемента списка
  6. Логирование с Logzero
  7. Раздувающийся словарь в Python
  8. Метод __irshift__ для побитового сдвига вправо
  9. Уникальные значения из списка
  10. Работа со строками в Python
  11. Вложенные функции в Python
  12. Оптимизация гиперпараметров с Scikit Optimize
  13. Особенности запятых в Python
  14. Принципы LSP и ISP в Python
  15. Отладка кода
  16. Solidity для DeFi Ethereum
  17. Возведение в квадрат с помощью itertools
  18. Генераторы в Python
  19. Метод __iand__ для пользовательских классов
  20. Метод join для объединения строк
  21. Шаблоны и наследование в Flask
  22. Удаление ключей из словаря
  23. Применение функции map() в Python
  24. Удаление ссылок в Python
  25. Логирование с Loguru
  26. Проверка запуска скрипта или импорта модуля
  27. Добавление вложенных списков
  28. Метод rxor для операции побитового исключающего «или»
  29. Операторы увеличения и уменьшения переменной
  30. Работа с географическими данными в Python
  31. Просмотр атрибутов и методов класса
  32. Функции высшего порядка в Python
  33. Конкатенация строковых литералов
  34. Импорт модулей и пакетов в Python
  35. Работа с файлами в Python
  36. Установка и использование pyshorteners
  37. Метод Self в Python
  38. Получение обратного списка чисел
  39. Поиск шаблона в строке
  40. Объединение списков с использованием itertools.chain
  41. Просмотр атрибутов и методов класса
  42. Отрицательные индексы списков
  43. Поиск уникальных элементов строкой в Python
  44. Создание итератора
  45. Профилирование данных с Pandas

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