Запитання з тегом «subprocess»

Підпроцесорний модуль Python дозволяє нерестувати нові процеси, підключатися до їх вхідних / вихідних / помилкових труб та отримувати їхні коди повернення. Використовуйте його для запуску команди оболонки або виконуваного файлу в Python.


16
Запуск команди оболонки та фіксація виводу
Я хочу написати функцію, яка виконає команду shell і поверне її вихід у вигляді рядка , незалежно від того, чи це повідомлення про помилку чи успіх. Я просто хочу отримати той самий результат, який я отримав би з командного рядка. Що б було прикладом коду, який би робив таке? Наприклад: …
906 python  shell  subprocess 

30
Неблокування зчитування на підпроцесі.PIPE в python
Я використовую модуль підпроцеси для запуску підпроцесу та підключення до його вихідного потоку (stdout). Я хочу мати можливість виконувати незаблокуючі читання на його 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() Команда продовжує працювати у фоновому режимі, тому мені було цікаво, як я можу насправді припинити процес. Зауважте, що коли я запускаю команду за допомогою: p = subprocess.Popen(cmd.split(), stdout=subprocess.PIPE) Він видається …

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) У мене кишка відчуває, що є кращий спосіб; це добре виглядає?
285 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' Мабуть, об'єкт …
280 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
читати підпроцесовий вигляд рядка за рядком
Мій скрипт python використовує підпроцес для виклику утиліти Linux, яка дуже шумно. Я хочу зберегти весь результат у файлі журналу та показати його частині користувачеві. Я думав, що наступне спрацює, але результат не відображається в моїй програмі, поки утиліта не виробить значну кількість результатів. #fake_utility.py, just generates lots of output …
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"), моя програма чекає, поки процес закінчиться, …
201 python  subprocess 

1
Як я можу вказати робочий каталог для popen
Чи є спосіб вказати запущений каталог команд у Python's 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.