【发布时间】:2020-01-15 03:19:25
【问题描述】:
假设 Python 中的代码框架如下所示。此代码正在调用另一个可执行的 bash 脚本以在 Ubuntu 18.04 上并行运行。
#!/usr/bin/env python3
#encoding:utf-8
import subprocess
with open(file='subprocess_output.log', mode='a') as file_pointer:
subprocess.Popen(args=['./subprocess.bash'], stdout=file_pointer, stderr=file_pointer)
#Next section
它正在工作。但我很好奇,with 语句是否正在关闭文件指针并在主代码进入下一节时立即释放资源。这不正是with 语句应该做的吗?获取和释放资源安全?但是,如果日志文件的句柄在调用后立即释放,那么当主脚本继续前进时,子进程缓冲区如何稍后写入日志?
对于深入了解操作系统如何在较低级别处理文件的任何人来说,答案可能是显而易见的。因此,任何指向在线资源(双关语)的指针都会很棒。
【问题讨论】:
标签: python subprocess io-redirection filehandle