python - 如何根据模式列出目录中的文件名
问题描述
我有一个查找文件(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 新手,无法找到简单的解决方案。谁能帮我这个?
解决方案
您可以尝试使用该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 + '*'))
推荐阅读
- python - 错误:但是这台机器只有:['/cpu:0']。- 但识别 2 gpus
- ios - iOS:如何正确设置/重置 UIScreen.main.brightness
- php - 如何在 CakePHP 中获得退回的电子邮件?
- java - 是否可以设置计时器以在材料设计中显示/隐藏密码?
- assembly - 汇编语言新手并出现错误:“add.s:7: Error: shift expression expected -- `adds R0,R1,R2,R3'”
- python - 在字符串中查找特定单词+任何单词+特定单词python
- vue.js - Vue-table-2 表不会更新
- javascript - 保存在 indexeddb 中时,文件上的分配属性消失
- codesys - 如何在 CODESYS 中参数化功能块?
- java - 如何使用通过以太网在另一个线程中接收的数据更新 javaFX 表