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

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

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

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

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

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

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

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

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

Здесь код Python для запуска произвольной команды, возвращающей свои данные stdout, или вызывает исключение при ненулевых кодах выхода: proc = subprocess.Popen( cmd, stderr=subprocess.STDOUT, # Merge stdout and stderr stdout=subprocess...
задан 28 июля '09 в 3:41
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 в 20:25
7
ответов

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

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

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

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

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

Я использую eSpeak на Ubuntu и имею Python 2.7 script, который печатает и говорит сообщение: import subprocess text = 'Hello World.' print text subprocess.call(['espeak', text]) eSpeak производит нужные звуки, но загромождает оболочку с некоторым...
задан 30 июня '12 в 1:08
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 в 20:55
7
ответов

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

Как я могу получить результат выполнения процесса с помощью subprocess.call()? Передача объекта StringIO.StringIO в stdout дает эту ошибку: Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/Library/Framew...
задан 04 янв. '10 в 1:07
6
ответов

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

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

Подпроцесс Python с каналом

Я хочу использовать subprocess.check_output() с ps -A | grep 'process_name'. Я пробовал различные решения, но пока ничего не получилось. Может ли кто-нибудь вести меня, как это сделать?
задан 11 нояб. '12 в 17:55
5
ответов

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

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

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

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

Python задает рабочий каталог popen через аргумент

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