This question already has answers here:

How can I check the extension of a file?
(11个答案)
如何缩短以下MWE?
files = ['a.txt', 'b.jpg', 'c.png', 'd.JPG', 'e.JPG']
images = [x for x in files if '.jpg' in x or '.png' in x or '.JPG' in x]
print images

我在想
files = ['a.txt', 'b.jpg', 'c.png', 'd.JPG', 'e.JPG']
images = [x for x in files if ('.jpg' or '.png' or '.JPG') in x]
print images

这不起作用。
与这篇文章相比:Checking file extension,我还对一个泛化感兴趣,它不关注文件结尾。

最佳答案

这有点短

files = ['a.txt', 'b.jpg', 'c.png', 'd.JPG', 'e.JPG']
images = [x for x in files if x.endswith(('.jpg','.png','.JPG'))]
print images

它之所以有效是因为endswith()可以接受一个元组作为输入,正如您所看到的in the docs
你甚至可以这样做使它不区分大小写
images = [x for x in files if x.lower().endswith(('.jpg','.png'))]

07-26 04:02