【发布时间】:2018-05-16 12:30:01
【问题描述】:
我正在尝试使用 python 的 os.system() 命令记录 linux 中特定进程的 CPU 和 RAM 消耗的输出。为了区分每次迭代的输出,我在 os.system() 命令的上方和下方添加了带有迭代号的打印语句。
我的代码如下:
import os
i=0
while i<30:
print "----CPU----"
op=os.system("ps -raxxxo pid,%cpu,%mem,vsize,time,command | grep -E 'java|gui' ")
print i
i+=1
sleep(1.0/3.0)
现在,在运行脚本并查看日志后,它不符合我的期望。我看到对于所有迭代,首先打印 os.system 的输出,然后这些打印语句在最后。这并不能帮助我区分每次迭代的输出。
运行python script.py后的输出>& log.txt。 (我在 linux env 中运行这个脚本) - 部分输出
1332 0.0 3.6 572960 5:56.04 /data/bin/gui
20978 0.0 0.5 79480 1:47.16 java
13040 0.0 0.0 18976 0:00.00 grep -E java|gui
1332 0.0 3.6 572960 5:56.04 /data/bin/gui
20978 0.0 0.5 79480 1:47.16 java
13043 0.0 0.0 18976 0:00.00 grep -E java|gui
----CPU----
0
1
----CPU----
0
2
如何在 python 中获得如下输出?
----CPU----
1332 0.0 3.6 572960 5:56.04 /data/bin/gui
20978 0.0 0.5 79480 1:47.16 java
13043 0.0 0.0 18976 0:00.00 grep -E java|gui
<iteration-number>
期待社区的解答和cmets。另外,如果这是一个重复的问题,请指出类似的问题,因为我没有得到类似的问答。
【问题讨论】:
标签: python