如何解决Python字符串比较失败
小型Python prog'通过匹配扩展名对下载文件夹进行排序,
我在下面得到了False(在我看来)字符串匹配。
我进行了搜索,但似乎只发现了与REGEX匹配有关的问题,或更复杂的东西!
分隔扩展名
for filename in os.listdir(src_base_folder):
orig_title,orig_ext = os.path.splitext(filename)
使小写字母易于匹配,并去除开头的“。”
我怀疑我的问题就在这里。
extension = str.lower(orig_ext)[1:]
以下测试对于“ S22F350FH.icm”以外的所有设备都可以正常运行, 用于设置显示器的colorscheme文件。
我打印出显示为“ icm”的“扩展名”,但我得到了假比赛 在此代码中针对各种图片类型的扩展名:
if extension == "jpg" or "jpeg" or "png" or "gif" or "bmp":
欣赏您的想法。
解决方法
您应该使用:
而不是if extension == "jpg" or "jpeg" or "png" or "gif" or "bmp"
if extension in ["jpg","jpeg","png","gif","bmp"]:
,
解释器对条件句的处理如下:
if expr_1 or expr_2 or expr_3:
更简洁地
if (expr_1) or (expr_2) or (expr_3)
评估程序时,解释器将if extension == "jpg" or "jpeg" or "png" or "gif" or "bmp"
视为:
if (extension == "jpg") or ("jpeg") or ("png") or ("gif") or ("bmp"):
由于非空字符串是真实的,因此它将始终计算为True
。而是使用@Mayank建议的if extension in ["jpg","bmp"]:
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。