我有一个查找文件( 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的新手,无法找到简单的解决方案。 有人可以帮我吗?
答案 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 + '*'))