xto*_*ofl 5 python exception filter
使用psutil我得到一个进程列表;我想过滤掉那些具有特定名称的人。
filter(lambda p: p.name()=="x", psutil.process_iter())
Run Code Online (Sandbox Code Playgroud)
但是,该psutil.Process.name()函数可能会抛出...在这种情况下filter会受到打击,并向我重新引发异常。
是否有一种filter_noexception函数/习惯用法,或者我需要p.name()自己将其包装到异常吞没函数中?
filter但正如文档所述,没有这样的处理:
请注意,如果 function 不是 None,则 filter(function, iterable) 相当于 [item for item in iterable if function(item)]
考虑到这一点,我会自己处理流程:
def filter_noexception(func, iter):
result = []
for i in iter:
try:
if func():
result.append(i)
except:
pass
return result
filtered_processes = filter_noexception(lambda p: p.name() == "x", psutil.process_iter())
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3957 次 |
| 最近记录: |