如何使用通配符关键字过滤 Python 列表?

问题描述

我遵循了这个问题中的解决方案:Check if a Python list item contains a string inside another string 但不同的是我使用了通配符过滤器 *txt.gz

所以我有一个文件名列表,我只想用 *txt.gz

返回列表
file_list = ['file0.test.json.gz','file2.txt','file3.test.txt.gz','file4.test.txt.gz']

预期结果:

['file3.test.txt.gz','file4.test.txt.gz']

我试过了:

filtered_list = [s for s in ftp_file_list if "*txt.gz" in s]

输出

[]

有人可以帮忙吗?谢谢。

解决方法

您可以使用 split() 并将最后两个单词与 txtgz 进行比较:

out = [file for file in file_list if file.split('.')[-1] == "gz" and file.split('.')[-2] == "txt"]

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...