Piping output of subprocess.Popen to files

前端 未结 3 1770
一向
一向 2020-12-02 17:00

I need to launch a number of long-running processes with subprocess.Popen, and would like to have the stdout and stderr from each auto

3条回答
  •  星月不相逢
    2020-12-02 17:12

    You can pass stdout and stderr as parameters to Popen()

    subprocess.Popen(self, args, bufsize=0, executable=None, stdin=None, stdout=None,
                     stderr=None, preexec_fn=None, close_fds=False, shell=False,
                     cwd=None, env=None, universal_newlines=False, startupinfo=None, 
                     creationflags=0)
    

    For example

    >>> import subprocess
    >>> with open("stdout.txt","wb") as out, open("stderr.txt","wb") as err:
    ...    subprocess.Popen("ls",stdout=out,stderr=err)
    ... 
    
    >>> 
    

提交回复
热议问题