У меня есть два файла:
main.py
import subprocess
import shlex
def main():
command = 'python test_output.py'
logfile = open('output', 'w')
proc = subprocess.Popen(shlex.split(command), stdout=logfile)
if __name__ == "__main__":
main()
и test_output.py
from time import sleep
import os
for i in range(0, 30):
print("Slept for => ", i+1, "s")
sleep(1)
os.system("notify-send completed -t 1500")
Выход процесса записан в logfile
как только дочерний процесс завершен.Есть ли способ:
- Запустить дочерний процесс из main и выйти из него (как сейчас).
- Продолжать запуск дочернего процесса в фоновом режиме.
- Когда дочерний процесс выдает результат, немедленно запишите его в
logfile
.(Не ждите завершения дочернего процесса, как это происходит сейчас.)
Есть другие вопросы ( как этот ), где решение дано для чтения строклинии, но они заставляют main.py
ждать.Можно ли делать все в фоновом режиме, не заставляя main.py ждать?