Python 字符串比较失败
Python string comparison failing
small Python prog' 通过匹配扩展名对下载文件夹进行排序,
我在下面得到一个错误的(在我看来)字符串匹配。
我进行了搜索,但似乎只找到了有关 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”以外的所有内容都工作正常,
用于设置显示器的配色方案文件。
我打印出显示为“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"):
由于 non-empty 字符串为真值,因此其计算结果始终为 True
。相反,使用@Mayank 建议的 if extension in ["jpg", "jpeg", "png", "gif", "bmp"]:
.
small Python prog' 通过匹配扩展名对下载文件夹进行排序,
我在下面得到一个错误的(在我看来)字符串匹配。
我进行了搜索,但似乎只找到了有关 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”以外的所有内容都工作正常, 用于设置显示器的配色方案文件。
我打印出显示为“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"):
由于 non-empty 字符串为真值,因此其计算结果始终为 True
。相反,使用@Mayank 建议的 if extension in ["jpg", "jpeg", "png", "gif", "bmp"]:
.