Вопросы с тегом «subprocess»

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


16
Выполнение команды оболочки и захват вывода
Я хочу написать функцию, которая будет выполнять команду оболочки и возвращать ее вывод в виде строки , независимо от того, является ли это ошибкой или сообщением об успехе. Я просто хочу получить тот же результат, который я получил бы с командной строкой. Каким был бы пример кода, который сделал бы …
909 python  shell  subprocess 

30
Неблокирующее чтение на подпроцесс. PIPE в Python
Я использую модуль подпроцесса, чтобы запустить подпроцесс и подключиться к его выходному потоку (stdout). Я хочу иметь возможность выполнять неблокирующие чтения на своем стандартном выводе. Есть ли способ сделать .readline неблокирующим или проверить, есть ли данные в потоке, прежде чем я вызову .readline? Я хотел бы, чтобы это было переносимо …

29
Использование модуля «подпроцесс» с таймаутом
На этот вопрос есть ответы на Stack Overflow на русском : Прерывание процесса и задержка на исполнение Вот код Python для запуска произвольной команды, возвращающей свои stdoutданные, или для создания исключения для ненулевых кодов выхода: proc = subprocess.Popen( cmd, stderr=subprocess.STDOUT, # Merge stdout and stderr stdout=subprocess.PIPE, shell=True) communicate используется для …

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

15
Сохранить выходные данные подпроцесса. Открыть вызов в строке
Я пытаюсь сделать системный вызов в Python и сохранить вывод в строку, которой я могу манипулировать в программе Python. #!/usr/bin/python import subprocess p2 = subprocess.Popen("ntpq -p") Я попробовал несколько вещей, включая некоторые из предложений здесь: Получение выходных данных subprocess.call () но без удачи.
300 python  subprocess 

8
Подпроцесс Python / Popen с измененной средой
Я считаю, что запуск внешней команды с немного измененной средой является очень распространенным случаем. Вот как я это делаю: import subprocess, os my_env = os.environ my_env["PATH"] = "/usr/sbin:/sbin:" + my_env["PATH"] subprocess.Popen(my_command, env=my_env) У меня есть чувство, что есть лучший способ; это выглядит хорошо?
286 python  subprocess  popen 

5
Как скрыть вывод подпроцесса в Python 2.7
Я использую eSpeak в Ubuntu и у меня есть скрипт Python 2.7, который печатает и произносит сообщение: import subprocess text = 'Hello World.' print text subprocess.call(['espeak', text]) eSpeak производит желаемые звуки, но загромождает оболочку некоторыми ошибками (ALSA lib ..., нет подключения к сокету), поэтому я не могу легко прочитать то, …

11
Как передать строку в 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): File "<stdin>", line 1, in ? File "/build/toolchain/mac32/python-2.4.3/lib/python2.4/subprocess.py", line 533, in __init__ (p2cread, p2cwrite, File "/build/toolchain/mac32/python-2.4.3/lib/python2.4/subprocess.py", line 830, in _get_handles p2cread = stdin.fileno() AttributeError: 'cStringIO.StringI' object has no attribute 'fileno' По-видимому, объект …
281 python  subprocess  stdin 

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


9
читать подпроцесс stdout построчно
Мой скрипт на python использует подпроцесс для вызова очень шумной утилиты linux. Я хочу сохранить весь вывод в файл журнала и показать некоторые из них пользователю. Я думал, что следующее будет работать, но вывод не будет отображаться в моем приложении, пока утилита не выдаст значительный объем вывода. #fake_utility.py, just generates …
235 python  subprocess 

13
Постоянно печатать вывод подпроцесса во время работы процесса
Для запуска программ из моих Python-скриптов я использую следующий метод: def execute(command): process = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT) output = process.communicate()[0] exitCode = process.returncode if (exitCode == 0): return output else: raise ProcessException(command, exitCode, output) Поэтому, когда я запускаю такой процесс Process.execute("mvn clean install"), моя программа ждет, пока процесс не …
203 python  subprocess 

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


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.