Python subprocess get children's output to file and terminal?

后端 未结 2 1602
耶瑟儿~
耶瑟儿~ 2020-11-22 10:09

I\'m running a script that executes a number of executables by using

subprocess.call(cmdArgs,stdout=outf, stderr=errf)

when outf

2条回答
  •  孤城傲影
    2020-11-22 10:36

    You could use something like this: https://github.com/waszil/subpiper

    In your callbacks you can do whatever you like, log, write to file, print, etc. It also supports non-blocking mode.

    from subpiper import subpiper
    
    def my_stdout_callback(line: str):
        print(f'STDOUT: {line}')
    
    def my_stderr_callback(line: str):
        print(f'STDERR: {line}')
    
    my_additional_path_list = [r'c:\important_location']
    
    retcode = subpiper(cmd='echo magic',
                       stdout_callback=my_stdout_callback,
                       stderr_callback=my_stderr_callback,
                       add_path_list=my_additional_path_list)
    

提交回复
热议问题