如何根据模式列出目录中的文件名

时间:2019-02-04 21:36:14

标签: python

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

file1.txt

的内容
 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的新手,无法找到简单的解决方案。 有人可以帮我吗?

1 个答案:

答案 0 :(得分:2)

您可以使用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 + '*'))