Python capture subprocess output after termination

前端 未结 3 1103
忘掉有多难
忘掉有多难 2021-01-12 17:06

I am trying to get subprocess output (on Windows) at the time the TimeoutExpired exception is raised. Any ideas?

try:
    proc = subprocess.run(cmd,timeout=3         


        
3条回答
  •  猫巷女王i
    2021-01-12 17:28

    Here is the way for capturing stdout for multiprocessing.Process

    import app
    import sys
    import io
    from multiprocessing import Process
    
    
    def run_app(some_param):
        sys.stdout = io.TextIOWrapper(open(sys.stdout.fileno(), 'wb', 0), write_through=True)
        app.run()
    
    app_process = Process(target=run_app, args=('some_param',))
    app_process.start()
    # Use app_process.termninate() for python <= 3.7.
    app_process.kill() 
    

提交回复
热议问题