在python中搜索包含多个关键字的文件名

在python中搜索包含多个关键字的文件名,python,Python,我有一个包含大量文件的目录。我想查找所有文件,其中文件名包含特定字符串(例如“.txt”等特定结尾、模型ID“model_xy”等)以及整数数组中的一个条目(例如,我想选择的年数) 我尝试了以下方法: 将numpy作为np导入 导入glob startyear=2000 年底=2005年 时间范围=str(np.arange(起始年,结束年+1)) 数据_文件=[] 对于glob.glob('/home/…/*model_xy*'+timerange+'.txt')中的文件: 数据文件。追加(

我有一个包含大量文件的目录。我想查找所有文件,其中文件名包含特定字符串(例如“.txt”等特定结尾、模型ID“model_xy”等)以及整数数组中的一个条目(例如,我想选择的年数)

我尝试了以下方法:


将numpy作为np导入
导入glob
startyear=2000
年底=2005年
时间范围=str(np.arange(起始年,结束年+1))
数据_文件=[]
对于glob.glob('/home/…/*model_xy*'+timerange+'.txt')中的文件:
数据文件。追加(文件);
打印(数据文件)

不幸的是,像这样,我的“时间范围”之外的其他文件仍然被选中。

您可以在
glob.glob
中使用正则表达式。此外,
glob.glob
返回一个列表,这样您就不需要遍历它并附加到新列表中

import glob

data_files = glob.glob("/home/..../*model_xy*200[0-5].txt")

# or if you want to do recursive search you can use **
# Below code will search for all those files under /home/ recursively
data_file = glob.glob("/home/**/*model_xy*200[0-5].txt")

怎么样
os.listdir()
os.walk()
glob.glob
也需要正则表达式,因此您应该能够执行类似于
'/home/…/*model_xy*200*[0-5].txt'