• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

如何防止subprocess.call打印返回码?

python 来源:MagicToaster 3次浏览

当使用subprocess.call(cmd,shell = True)时,我该如何停止从打印语句末尾悬挂零点?如何防止subprocess.call打印返回码?

print("The top five memory consumers on the system are:") 
print(subprocess.call('ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head -n 6', shell=True)) 

输出:

The top five memory consumers on the system are: 
    PID PPID CMD       %MEM %CPU 
    807  1 /usr/bin/python -Es /usr/sb 3.1 0.0 
    615 555 /sbin/dhclient -d -q -sf /u 3.0 0.0 
1500 917 python      1.7 0.0 
9921 917 python ./dkap_sysinfo.py  1.7 0.0 
    556  1 /usr/sbin/rsyslogd -n  1.3 0.0 
0 

^问题孩子


===========解决方案如下:

可以使用subprocess.check_output()代替subprocess.call()

import subprocess 

print("The top five memory consumers on the system are:") 

cmd = "ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head -n 6" 
result = subprocess.check_output(cmd, shell=True).decode() 

lines = result.split("\n") 
for line in lines: 
    print(line) 

还要指出的是check_output()结果是一个字节样对象,所以你必须拨打.decode()如果你想使用它作为一个字符串。


版权声明:本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。
喜欢 (0)