如何在Python中检查字符串是否以列表中的后缀之一结尾?
在Python中,我们经常需要对字符串进行操作,其中包括检查字符串是否以某些后缀结尾。如果有一个后缀列表,我们可以使用Python内置的string方法endswith()
来轻松地检查字符串是否以列表中的任何一个后缀结尾。下面是一些示例代码,来帮助理解如何使用这个方法:
suffix_list = ['.jpg', '.png', '.gif']
file_name = 'test.jpg'
if file_name.endswith(tuple(suffix_list)):
print("文件名 %s 是以指定后缀%s中的一个结尾" % (file_name, ', '.join(suffix_list)))
else:
print("文件名 %s 不是以指定后缀%s中的任一一个结尾" % (file_name, ', '.join(suffix_list)))
在这个例子中,我们首先定义了一个后缀列表sufix_list
,其中元素是以点开头的字符串。然后,我们定义了一个字符串file_name
,它以.jpg
结尾。使用endswith()
方法,将sufix_list
作为参数传递,方法返回True
,因为字符串file_name
以sufix_list
中的一个元素结尾。
suffix_list = ['.txt', '.pdf', '.doc']
file_name = 'test.jpg'
if file_name.endswith(tuple(suffix_list)):
print("文件名 %s 是以指定后缀%s中的一个结尾" % (file_name, ', '.join(suffix_list)))
else:
print("文件名 %s 不是以指定后缀%s中的任一一个结尾" % (file_name, ', '.join(suffix_list)))
在这个例子中,我们将文件名test.jpg
和后缀列表sufix_list
作为参数传递给endswith()
方法。因此,方法返回False
,因为文件名不以sufix_list
中的任何一个后缀结尾。
suffix_list = ['.txt', '.pdf', '.doc']
file_name = 'test.pdf'
if file_name.endswith(tuple(suffix_list)):
print("文件名 %s 是以指定后缀%s中的一个结尾" % (file_name, ', '.join(suffix_list)))
else:
print("文件名 %s 不是以指定后缀%s中的任一一个结尾" % (file_name, ', '.join(suffix_list)))
在这个例子中,我们再次传递文件名test.pdf
和后缀列表sufix_list
作为参数给endswith()
方法。该方法返回True
,因为文件名以sufix_list
中的一个后缀结尾。
在以上示例中,我们使用了内置的endswith()
方法,该方法需要一个后缀列表作为参数。可以注意到,在第一个示例中,我们将文件名file_name
作为参数传递给该方法。这是一个常见的错误,由于endswith()
方法只需要后缀列表作为参数,因此需要先将后缀列表元素转换为一个元组。否则,该方法将会抛出一个类型错误。
这可以通过将后缀列表转换为元组来解决,如下所示:
suffix_list = ['.jpg', '.png', '.gif']
file_name = 'test.jpg'
if file_name.endswith(tuple(suffix_list)):
print("文件名 %s 是以指定后缀%s中的一个结尾" % (file_name, ', '.join(suffix_list)))
else:
print("文件名 %s 不是以指定后缀%s中的任一一个结尾" % (file_name, ', '.join(suffix_list)))
在这个例子中,我们将后缀列表sufix_list
转换为元组,并将元组作为endswith()
方法的参数传递。
阅读更多:Python 教程
结论
在Python中,可以使用内置方法endswith()
来检查一个字符串是否以指定的后缀列表中的任一个后缀结尾。但是,需要注意将后缀列表转换为元组以避免类型错误。只有当字符串以列表中的任意一个后缀结尾时,该方法才会返回True。可以很容易地使用这种方法来检查文件名是否符合预期,而不必逐个检查所有后缀。