Python:在min(list)中返回0,且没有min为0

时间:2018-12-01 19:34:25

标签: python int min

我正在创建一个命令,该命令将使用某个进程的部分或全名,并杀死其最低的pid-从而从中生成其余的进程。我的代码返回的min(list_of_process_ids)为0,其中没有min为0。请向我说明为什么发生这种情况。谢谢。

#!/usr/bin/env python

"""Kill proceses by partial name matching"""

import os, sys

def usage():
    return ("pskill.py process_name")

def pids(proc):
    """ Find the processes"""
    procs = []
    procs = os.system("ps -ef|grep -i " + proc + "|grep -v grep|grep -v pfind|awk '{print $2}'")
    procs = [int(x) for x in str(procs)]
    return procs

def kill(procs):
    ppid = min(procs)
    os.system("kill " + str(ppid))
    return ("Processes Killed...")

def main():
    if len(sys.argv) != 2:
        print (usage())
    else:
        proc = sys.argv[1]
        pids(proc)
        kill(pids(proc))

main()

1 个答案:

答案 0 :(得分:2)

您没有抓住stdout,因此实际上除了命令的存在状态之外,您什么都没有得到。可以高兴的是0 :-)
尝试使用the subprocess module。特别是通过将结果传递到python控制台的stdout选项...