首页 > 解决方案 > 如何根据模式列出目录中的文件名

问题描述

我有一个查找文件(file1.txt),其中包含要搜索的模式列表。

file1.txt的 Ex 内容

 dtdge_ddgaec
 daew_e2

我必须根据 file1.txt 中的模式列出特定目录中的文件 例如:如果特定目录具有以下文件

abdc_dtdge_ddgaec_09030.txt
odad_dwad_dadatge_daece_0869.txt
dadaf_dawa_dpidae_daew_e2_0901.txt
adydyaq_da9dad_dagda_dadge_0730.txt

我只需要显示与file1.txt中的模式匹配的文件

输出:

abdc_dtdge_ddgaec_09030.txt
dadaf_dawa_dpidae_daew_e2_0901.txt

在 Unix 脚本中,我可以逐行读取file1.txt并使用 ls 命令我可以使用 grep 命令匹配模式并显示所需的输出。

我是 Python 新手,无法找到简单的解决方案。谁能帮我这个?

标签: python

解决方案


您可以尝试使用该glob模块的解决方案。像这样的东西,也许:

import glob
import os.path

with open('file1.txt', 'r') as file1:
    patterns = file1.read().split()

matching_filenames = []
for pattern in patterns:
    matching_filenames += glob.glob(os.path.join(MY_DIR, '*' + pattern + '*'))

推荐阅读