Python子进程执行的脚本不会写入文件

Python子进程执行的脚本不会写入文件,python,subprocess,multiprocessing,Python,Subprocess,Multiprocessing,我编写了两个脚本,其中一个脚本调用subprocess.Popen来运行终端命令以执行第二个脚本。等待5秒后,它将终止子进程 在子流程中,我有一个while循环轮询寄存器并将该寄存器的内容写入文件 我使用的方法是 f = open(filename, 'w') ... while 1: *poll register* f.write(fp0) sleep(1) 每当我单独使用while循环运行脚本时,它都会将寄存器的内容写入文件。但是,当我执行主脚本并将轮询脚本作为子进

我编写了两个脚本,其中一个脚本调用subprocess.Popen来运行终端命令以执行第二个脚本。等待5秒后,它将终止子进程

在子流程中,我有一个while循环轮询寄存器并将该寄存器的内容写入文件

我使用的方法是

f = open(filename, 'w')
...
while 1:
    *poll register*
    f.write(fp0)
    sleep(1)
每当我单独使用while循环运行脚本时,它都会将寄存器的内容写入文件。但是,当我执行主脚本并将轮询脚本作为子进程执行时,它在终止后不会写入文件


有人能对此问题提出建议吗?

因为您正在终止子进程,可能它没有将输出刷新到文件中。
尝试调用
f.flush()
以确保输出已写入文件。

由于您正在终止子进程,可能它没有将输出刷新到文件。
尝试调用
f.flush()
以确保输出已写入文件。

在打开文件时使用上下文,并在睡觉前添加刷新:

with open(filename, 'w') as f:
    ...
    while 1:
        *poll register*
        f.write(fp0)
        f.flush()
        sleep(1)

在打开文件时使用上下文,并在睡觉前添加刷新:

with open(filename, 'w') as f:
    ...
    while 1:
        *poll register*
        f.write(fp0)
        f.flush()
        sleep(1)