【发布时间】:2022-01-18 13:14:03
【问题描述】:
我需要用 python 运行一些 bash 脚本并显示输出。其中一些脚本包含一些pv 命令,但我无法从subprocess 获得pv 输出。
import subprocess as sp
p = sp.Popen(["./script.sh"], shell=False, bufsize=1, stdout=sp.PIPE, stderr=sp.STDOUT, universal_newlines=True)
p.wait()
print(p.returncode)
print(p.stdout.read())
#!/bin/bash
set -e
echo "aaa"
echo "bbb" >&2
pv -L 1000 -F "%t %b %r %e" /path/to/some/file | cat > /tmp/foo
运行这个 python 脚本我只是得到echo的输出:
$ python script.py
0
aaa
bbb
【问题讨论】:
标签: python subprocess stderr pv