Вопросы с тегом 'subprocess'

Модуль подпроцесса Python позволяет создавать новые процессы, подключаться к их каналам ввода/вывода/ошибок и получать коды возврата. Используйте его для запуска команды оболочки или исполняемого файла в Python.
58

Вызов внешней команды в Python

Как я могу вызвать внешнюю команду (как если бы я набрал ее в оболочке Unix или командной строке Windows) из скрипта Python?
18 сент. '08 в 1:35
18

Запуск команды оболочки и захват вывода

Я хочу написать функцию, которая выполнит команду оболочки и вернет ее вывод в виде строки, независимо от того, является ли это сообщение об ошибке или успехе. Я просто хочу получить тот же результат, что и в командной строке. Каким будет пример к...
21 янв. '11 в 14:55
27

Неблокирование чтения на подпроцессе .PIPE в python

Я использую модуль подпроцесса для запуска подпроцесса и подключения к нему выходного потока (stdout). Я хочу, чтобы иметь возможность выполнять неблокирующие чтения на его stdout. Есть ли способ сделать .readline non-blocking или проверить, есть ли...
17 дек. '08 в 17:56
10

Сохранять вывод подпроцесса. Вызов вызова в строке

Я пытаюсь сделать системный вызов в Python и сохранить вывод в строке, которую я могу манипулировать в программе Python. #!/usr/bin/python import subprocess p2 = subprocess.Popen("ntpq -p") Я пробовал несколько вещей, включая некоторые из предложе...
23 мар. '10 в 19:05
27

Использование подпроцесса модуля с тайм-аутом

Здесь код Python для запуска произвольной команды, возвращающей свои данные stdout, или вызывает исключение при ненулевых кодах выхода: proc = subprocess.Popen( cmd, stderr=subprocess.STDOUT, # Merge stdout and stderr stdout=subprocess...
28 июл. '09 в 0:41
6

Как скрыть вывод подпроцесса в Python 2.7

Я использую eSpeak на Ubuntu и имею Python 2.7 script, который печатает и говорит сообщение: import subprocess text = 'Hello World.' print text subprocess.call(['espeak', text]) eSpeak производит нужные звуки, но загромождает оболочку с некоторым...
29 июн. '12 в 22:08
10

Python - Как передать строку в subprocess.Popen(используя аргумент stdin)?

Если я делаю следующее: import subprocess from cStringIO import StringIO subprocess.Popen(['grep','f'],stdout=subprocess.PIPE,stdin=StringIO('one\ntwo\nthree\nfour\nfive\nsix\n')).communicate()[0] Я получаю: Traceback (most recent call last): F...
02 окт. '08 в 17:25
7

Получение вывода subprocess.call()

Как я могу получить выходные данные процесса, запущенного с использованием subprocess.call()? Передача объекта StringIO.StringIO в stdout дает StringIO.StringIO ошибку: Traceback (most recent call last): File "<stdin>", line 1, in <modul...
03 янв. '09 в 22:07
5

Фактический смысл "shell = True" в подпроцессе

Я вызываю разные процессы с модулем subprocess. Однако у меня есть вопрос. В следующих кодах: callProcess = subprocess.Popen(['ls', '-l'], shell=True) и callProcess = subprocess.Popen(['ls', '-l']) # without shell Оба работают. После прочтени...
03 июл. '10 в 18:39
7

Как завершить подпроцесс python, запущенный с помощью оболочки = True

Я запускаю подпроцесс со следующей командой: p = subprocess.Popen(cmd, stdout=subprocess.PIPE, shell=True) Однако, когда я пытаюсь убить, используя: p.terminate() или p.kill() Команда продолжает работать в фоновом режиме, поэтому мне было ин...
25 янв. '11 в 3:58
8

читать подпроцесс stdout по очереди

Мой python script использует подпроцесс для вызова утилиты linux, которая очень шумная. Я хочу сохранить весь вывод в файл журнала и показать его пользователю. Я думал, что следующее будет работать, но вывод не появляется в моем приложении, пока ути...
10 мая '10 в 16:47
9

Подпроцесс Python/Popen с измененной средой

Я считаю, что запуск внешней команды со слегка измененной средой - очень распространенный случай. Вот как я это делаю: import subprocess, os my_env = os.environ my_env["PATH"] = "/usr/sbin:/sbin:" + my_env["PATH"] subprocess.Popen(my_command, env=my...
09 февр. '10 в 17:55
1

Как я могу указать рабочий каталог для popen

Есть ли способ указать действующий каталог команды в Python subprocess.Popen()? Например: Popen('c:\mytool\tool.exe', workingdir='d:\test\local') Мой скрипт Python находится в C:\programs\python Возможно ли запустить C:\mytool\tool.exe в каталог...
06 нояб. '09 в 3:06
5

Как получить код выхода при использовании метода передачи подпроцессов Python?

Как получить код выхода при использовании модуля Python subprocess и метода communicate()? Соответствующий код: import subprocess as sp data = sp.Popen(openRTSP + opts.split(), stdout=sp.PIPE).communicate()[0] Должен ли я делать это по-другому?
12 апр. '11 в 7:11
17

живой вывод из команды подпроцесса

Я использую python script в качестве драйвера для кода гидродинамики. Когда придет время для запуска моделирования, я использую subprocess.Popen для запуска кода, собираю вывод из stdout и stderr в subprocess.PIPE ---, тогда я могу распечатать (и со...
24 авг. '13 в 18:27