我对python命令和shell命令(来自子进程)的执行顺序感到困惑。
例如,我有一个简单的代码:
import subprocess
import shlex
command="echo 'test'"
arg=shlex.split(command)
with open("out.txt", "w") as f:
f.write("line1\n")
subprocess.call(arg, stdout=f)
f.write("line3\n")
我希望 out.txt 是:
line1
test
line3
但是,实际的 out.txt 是:
test
line1
line3
有人可以解释原因吗?谢谢你。