如果在lis中找到字符串,则对其进行筛选

2024-04-19 05:57:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我创建了一个用于登录Python的包装器&希望忽略某些字符串。我相信您可以简单地执行if msg in FILTER之类的操作来匹配字符串列表中的字符串。你知道吗

所以我尝试了这个

FILTER = ["Couldn't eval", "wrapWithType"]

class LegacyLogger(logging.Logger):
    def legacydebug(self, msg, *args, **kwargs):
        """
        Log messages.

        @param msg: Information to log
        @type msg: str
        """
        if not any(msg in s for s in FILTER):    # also tried 'if not msg in FILTER'
            self._log(LEGACY_DEBUG_LVL, msg, '')

    logging.Logger.legacydebug = legacydebug

但这不起作用,因为我的日志功能行,如“无法评估Y,因为名称“Y”未定义”,那么这是否查找字符串的完全匹配,而不是部分匹配?你知道吗


Tags: 字符串inselflog列表ifloggingeval
2条回答

我想你想要的是if not any(s in msg for s in FILTER):。你知道吗

你只要把它倒过来我想,试试:

if any([s in msg for s in FILTER]):

您试图将整个消息与筛选器中的字符串相匹配,但这不会提供任何匹配项。你知道吗

相关问题 更多 >