внешняя программа вызова python не блокирует

есть ли способ вызвать внешнюю программу внутри python и не дождаться завершения ее выполнения?

Я пробовал это, но не повезло:

os.system("external_program &") 

Обычно, если я вызываю external_program & внутри оболочки bash, она выполняется как фоновый процесс. Как я могу сделать это внутри python? Ибо, мой специальный случай, создающий другой поток, не работает. После выполнения основного скрипта python внешняя программа должна продолжить выполнение.

    2 Solutions collect form web for “внешняя программа вызова python не блокирует”

    Да, используйте модуль subprocess . Например:

     p = subprocess.Popen(['external_program', 'arg1', 'arg2']) # Process is now running in the background, do other stuff... ... # Check if process has completed if p.poll() is not None: ... ... # Wait for process to complete p.wait() 

    Забудьте о os.system() . Он устарел в пользу модуля subprocess .

    Он обеспечивает способ выполнения подпрограмм практически для каждого мыслимого варианта использования.

     
    Interesting Posts for Van-Lav

    Что такое хороший питонический способ поиска дублирующих объектов?

    Vim на Ubuntu 14.04 использует смешной путь python, python не может импортировать _io среди других модулей

    Скрытие отображения pygame

    Вставить графический график в документ Sphinx

    Как эффективно определить, содержит ли множество точек два близких

    Хвост файла до выхода процесса

    python topN max heap, использовать heapq или self реализовать?

    Метод python dunder для `is`

    поиск определенного значения из списка словаря в python

    установка предела оси y в matplotlib

    Как выставить сырые байтовые буферы с помощью Boost :: Python?

    Печать Юникода в консоли eclipse Pydev и в режиме ожидания

    Как использовать Python Mock для создания исключения – но с установкой Errno на заданное значение

    Разбор пустых опций в Python

    Python sys.stdin.read (max) до тех пор, пока не будет прочитано max (если max> = 0), блокирует до EOF else, но select указывает, что есть данные для чтения

    Python - лучший язык программирования в мире.