<p>您需要读取进程的标准输出,并对其进行一些控制,这样您就可以在线打印“进程加载”。你知道吗</p>
<p><strong>示例:</strong></p>
<pre><code>#!/usr/bin/env python
from __future__ import print_function
import sys
import psutil
import subprocess
try:
range = xrange
except NameError:
pass
p = subprocess.Popen(["ping", "-c", "5", "8.8.8.8"], stdout=subprocess.PIPE)
encoding = sys.getdefaultencoding()
for line in p.stdout:
load = psutil.cpu_percent(interval=1)
print("{0:s}{1:0.2f}< ".format(line.decode(encoding), load))
print("done")
</code></pre>
<p><strong>输出:</strong></p>
<pre><code>$ ./foo.py
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
21.10<
64 bytes from 8.8.8.8: icmp_seq=1 ttl=52 time=15.6 ms
15.40<
64 bytes from 8.8.8.8: icmp_seq=2 ttl=52 time=15.6 ms
13.20<
64 bytes from 8.8.8.8: icmp_seq=3 ttl=52 time=15.6 ms
20.70<
64 bytes from 8.8.8.8: icmp_seq=4 ttl=52 time=15.5 ms
19.90<
64 bytes from 8.8.8.8: icmp_seq=5 ttl=52 time=15.6 ms
11.00<
19.50<
- 8.8.8.8 ping statistics -
17.40<
5 packets transmitted, 5 received, 0% packet loss, time 4007ms
12.90<
rtt min/avg/max/mdev = 15.596/15.629/15.669/0.114 ms
16.60<
done
</code></pre>
<p><strong>NB:</strong>这是为了与Python 2/3兼容而编写的。你知道吗</p>