在Windows上使用python启动分离的无限过程并将输出通过管道传输到文件中

时间:2019-01-08 15:33:16

标签: python python-3.x windows subprocess

我正在尝试使用无限运行的python启动一个进程,并将其输出传输到文件中。 python可执行文件退出后,新创建的进程应继续运行。 我可以启动一个进程并使它在python退出时保持运行:

subprocess.Popen(command_list, creationflags=subprocess.DETACHED_PROCESS | subprocess.CREATE_NEW_PROCESS_GROUP | subprocess.CREATE_BREAKAWAY_FROM_JOB)

现在,我尝试将已启动进程的输出通过管道传输到文件中,但是我无法使其与分离进程一起工作。

关于如何实现此目标的任何建议?

请注意,我正在尝试在Windows上实现这一目标。

1 个答案:

答案 0 :(得分:1)

您是否尝试过将 stderr stdout 重定向到两个文件:

<p-table #table [columns]="cols" [value]="sales" [scrollable]="true" scrollHeight="200px"> ... </p-table>
<button (click)="scroll(table)">Scroll</button>

请确保检查from subprocess import Popen from subprocess import DEVNULL from subprocess import DETACHED_PROCESS from subprocess import CREATE_NEW_PROCESS_GROUP from subprocess import CREATE_BREAKAWAY_FROM_JOB command_list = ... creationflags = DETACHED_PROCESS | CREATE_NEW_PROCESS_GROUP | CREATE_BREAKAWAY_FROM_JOB with open("stderr.txt", mode="wb") as out, open("stdout.txt", mode="wb") as err: Popen(command_list, creationflags=creationflags, stdin=DEVNULL, stdout=out, stderr=err) stderr.txt,因为您过程的输出可以重定向到任何一个。