#python #subprocess #spawn
#python #подпроцесс #создать
Вопрос:
Мне нужно создать отдельный процесс Python, который запускает вспомогательный скрипт.
Например:
main.py запускает и выводит некоторый вывод на консоль. Затем он появляется sub.py который запускает новый процесс. Однажды main.py породил sub.py он должен завершиться, пока sub.py продолжает выполняться.
Спасибо.
Редактировать:
Когда я запускаю main.py он печатает ‘main.py ‘ но больше ничего и sub.py не запускается.
main.py
print "main.py"
import subprocess as sp
process=sp.Popen('sub.py', shell=True, stdout=sp.PIPE, stderr=sp.PIPE)
out, err = process.communicate(exexfile('sub.py')) # The output and error streams
raw_input("Press any key to end.")
sub.py
print "sub.py"
raw_input("Press any key to end.")
Комментарии:
1. В какой операционной системе вы работаете? Вы запускаете
main.py
из какой-нибудь ide?
Ответ №1:
execfile
Простой подход:
execfile('main.py')
Подпроцесс
Предлагает детальный контроль над вводом и выводом, может запускать процессы в фоновом режиме:
import subprocess as sp
process=sp.Popen('other_file.py', shell=True, stdout=sp.PIPE, stderr=sp.PIPE)
out, err = process.communicate() # The output and error streams.
Комментарии:
1. Вам нужно ввести данные в
communicate
метод. Скоро отредактирую свой ответ.2. Спасибо. Я добавил
exexfile('sub.py')
вcommunicate()
метод, и теперь он запускает sub.py файл, но в той же консоли, так как же заставить его запускаться отдельно? Возможно, я упускаю что-то действительно простое, извините. Еще раз спасибо.3. >> Один раз main.py породил sub.py он должен завершиться, пока sub.py продолжает выполняться.