import os os.popen(cmd, mode='r', buffering=-1)
Функция 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 # ... # ...