Проблема с подпроцессом.Popen в Python 3Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Проблема с подпроцессом.Popen в Python 3

Сообщение Anonymous »

Я занимаюсь переработкой кода Python 2.7 на Python 3 в среде Microsoft Windows 10. Я использую подпроцесс в нескольких сценариях для параллельной обработки вызовов однопоточных приложений. Этот подход очень хорошо работает в версии 2.7, но в Python 3 каждый Popen открывает окно CMD, что очень раздражает, поскольку отвлекает фокус от мыши и клавиатуры; если каждый процесс занимает 10 секунд и выполняется от 5 до 10 тысяч итераций, то в течение следующих 13–26 часов внимание будет украдено, что сделает компьютер практически непригодным для чего-либо еще.
Есть ли что-то, что я могу сделать? Мне не хватает документации, которая бы изменила поведение Popen, чтобы оно просто работало в фоновом режиме, как это было в версии 2.7?
Код:

Код: Выделить всё

ProcSpawned = False
while not ProcSpawned:
for ThisIndex in ThreadRange:
if RunningProcesses[ThisIndex] == None:
ProcSpawned = True # initialized starting value, this slot is free
elif RunningProcesses[ThisIndex].poll() != None:
ProcSpawned = True # this process has terminated, now this slot is free to use

if ProcSpawned:
FullCommand = Prog2Run + TheseIO
RunningProcesses[ThisIndex] = subprocess.Popen(FullCommand,stdout=FNULL, stderr=FNUL2)
break # thread launched, now break out so we don't restart it multiple times

Код: Выделить всё

Prog2Run
— это исполняемый файл, который обычно запускается в окне CMD, ThisIO — это список параметров, передаваемых в исполняемый файл, FNULL и FNUL2 — это os.devnull потому что мне все равно, какой текст или ошибка он генерирует, поскольку я проверяю наличие сбоев после завершения всех потоков (некоторые исполняемые файлы генерируют сообщения о ходе выполнения на stderr вместо stdout).

Подробнее здесь: https://stackoverflow.com/questions/783 ... n-python-3
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Docker exec с подпроцессом Python. Ошибка Popen
    Anonymous » » в форуме Python
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • Как завершить приложение, открытое подпроцессом Python
    Anonymous » » в форуме Python
    0 Ответы
    17 Просмотры
    Последнее сообщение Anonymous
  • Как завершить приложение, открытое подпроцессом Python
    Anonymous » » в форуме Linux
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • Как завершить приложение, открытое подпроцессом Python
    Anonymous » » в форуме Python
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous
  • Как мне управлять подпроцессом Python с бесконечным циклом
    Anonymous » » в форуме Python
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»