正常的命令执行结果:
subprocess.getstatusoutput
的执行结果:
环境 python3.6,顺序上 getstatusoutput
除了错误信息给提前了,其他顺序是没错的,为什么会这样?如何达到和终端执行命令的输出一致?
附上简单的sql脚本:
我在源码上没找到顺序错误的原因。
正常的命令执行结果:
subprocess.getstatusoutput
的执行结果:
环境 python3.6,顺序上 getstatusoutput
除了错误信息给提前了,其他顺序是没错的,为什么会这样?如何达到和终端执行命令的输出一致?
附上简单的sql脚本:
我在源码上没找到顺序错误的原因。
4 回答4.4k 阅读✓ 已解决
4 回答3.8k 阅读✓ 已解决
1 回答3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
1 回答4.5k 阅读✓ 已解决
1 回答3.8k 阅读✓ 已解决
1 回答2.8k 阅读✓ 已解决
自问自答,想到一个与顺序错位的可能答案,就是在 C 语言中,标准输出有缓冲,而错误信息是不缓冲的。
这也是为什么我在源码层上没发现什么问题, C 语言本身机制如此。python 执行指令时,win机器上用的是
_winapi.CreateProcess
执行的,这部分的实现是 C 的。