使用 psutil
我得到一个进程列表;我想过滤掉具有特定名称的那些。
filter(lambda p: p.name()=="x", psutil.process_iter())
但是,psutil.Process.name()
函数可能会抛出...在这种情况下,filter
受到打击,并向我重新引发异常。
是否有 filter_noexception
类型的函数/惯用语,或者我是否需要自己将 p.name()
包装到异常吞噬函数中?
最佳答案
你可以这样做:
def try_get_name(process_instance):
try:
return process_instance.name()
except:
return ""
filter(lambda p: try_get_name(p)=="x", psutil.process_iter())
关于python - 使用引发异常的 lambda 过滤列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24912150/