Python子进程调用未按顺序运行



我正试图编写一个调用bash脚本的python文件。我有以下代码

Print ("hello before subprocess call")
subprocess.call(['/builds/adummyscript.sh'], shell=True)
Print ("hello after subprocess call")

伪脚本只是一个bash脚本,代码如下

echo "hello from the inside of the subprocess call"

我的代码输出就是

hello from the inside of the subprocess call
hello before subprocess call
hello after subprocess call

我的问题是,为什么在打印语句之前运行子流程,以及如何解决此问题?

程序在您的print语句之后运行,python只是在调用子进程之前不刷新其stdout缓冲区。在调用脚本时,使用flush=True刷新python stdout或使用未缓冲的python。

print("hello before subprocess call",flush=True)

最新更新