Python子进程执行的脚本不会写入文件
我编写了两个脚本,其中一个脚本调用subprocess.Popen来运行终端命令以执行第二个脚本。等待5秒后,它将终止子进程 在子流程中,我有一个while循环轮询寄存器并将该寄存器的内容写入文件 我使用的方法是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循环运行脚本时,它都会将寄存器的内容写入文件。但是,当我执行主脚本并将轮询脚本作为子进
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)