Python文件名组合条件判断错误:筛选指定xlsx文件结果不符合预期
错误原因
- 运算符运算逻辑不符合预期:绝大多数编程语言中,
or是布尔逻辑运算符,对非空字符串求值时会直接返回第一个真值,你写的("Apples" or "Bananas")实际返回结果是"Apples",该值布尔判断为真,导致整个判断逻辑退化为「只要文件名后缀是.xlsx就符合条件」,所以把Pears.xlsx也纳入了结果。 - 字符串包含判断的写法错误:你不能将多个待匹配内容用
or拼接后统一判断是否在目标字符串中,必须分别对每个待匹配内容做包含判断。
修正后的判断逻辑
你可以使用以下两种写法实现需求,第二种用后缀判断更严谨,能避免文件名中间出现.xlsx的误判情况:
# 写法1 基础匹配 if ("Apples" in filename or "Bananas" in filename) and ".xlsx" in filename: Do something # 写法2 严谨后缀匹配 if ("Apples" in filename or "Bananas" in filename) and filename.endswith(".xlsx"): Do something
内容的提问来源于stack exchange,提问作者John Taylor
相关产品推荐
相关产品推荐

