Сообщить об ошибке.

Функция popen() модуля os в Python

Открыть канал ввода-вывода запущенной программы

Синтаксис:

import os

os.popen(cmd, mode='r', buffering=-1)

Параметры:

  • cmd - str, запущенная команда,
  • mode - str, режим открытия канала,
  • buffering - str, буферизация.

Возвращаемое значение:

Описание:

Функция popen() модуля os откроет канал для чтения или записи стандартного ввода-вывода запущенной команды cmd.

Возвращаемое значение - это открытый объект файла, подключенный к каналу, который может быть прочитан или записан в зависимости от того, является ли режим mode 'r' или 'w'.

Аргумент буферизации buffering имеет то же значение, что и соответствующий аргумент встроенной функции open(). Возвращенный объект файла читает или записывает текстовые строки, а не байты.

Метод file.close() возвращает None, если субпроцесс subprocess завершился успешно или вернет код возврата подпроцесса (int) , если произошла ошибка. В системах POSIX, если код возврата положительный, он представляет возвращаемое значение процесса, сдвинутое влево на один байт. Если код возврата отрицателен, процесс был прерван сигналом, заданным отрицательным значением кода возврата. Например, возвращаемое значение может быть - signal.SIGKILL, если субпроцесс был убит. В системах Windows возвращаемое значение содержит целочисленный код возврата со знаком от дочернего процесса.

Более удобный вариант функции os.popen() реализован в модуле subprocess.Popen. Модуль subprocess предлагает более мощные способы управления и взаимодействия с подпроцессами.

Примеры запуска программ функцией os.popen():

>>> import os
# указывайте полный путь к запускаемой 
# программе/команде или она не будет работать
# листинг каталога 'ls -l'
>>> cmd = '/bin/ls -l'
>>> output = os.popen(cmd, 'r')
>>> for line in output:
...     print(line, end='')
...

# итого 3184
# drwxrwxr-x 10 docs-python docs-python    4096 ноя 17 17:47 ansible
# drwxrwxr-x  15 docs-python docs-python    4096 дек 19 10:05 MyDocuments
# drwxr-xr-x  2 docs-python docs-python    4096 мар 20 12:34 Desktop
# drwxrwxr-x  2 docs-python docs-python    4096 фев  9 19:02 DOCS
# drwxr-xr-x 17 docs-python docs-python    4096 мар 19 17:49 Downloads
# ... 
# ...