python-3.5 - 递归搜索模式和列表文件名
问题描述
我下面的代码列出了所有文件,无论模式是否匹配。文件 ss.txt 不包含该模式,但仍获得输出
添加了代码
import os
import re
files = []
pattern = re.compile('my')
for p, d, f in os.walk(r'C:\Users\anaveed\test'):
for file in f:
files.append(os.path.join(p, file))
for f in files:
with open(f, 'r') as x:
for i in x:
Var1 = re.search(pattern, i)
print(f)
x.close()
C:\Users\anaveed\test\sample.txt
C:\Users\anaveed\test\testfile.txt
C:\Users\anaveed\test\hoax\a.txt
C:\Users\anaveed\test\hoax\ss.txt
解决方案
import os
import re
files = []
pattern = re.compile('my')
for p, d, f in os.walk(r'C:\Users\anaveed\test'):
for file in f:
files.append(os.path.join(p, file))
for f in files:
with open(f, 'r') as x:
Var1 = False
for i in x:
if re.search(pattern, i):
Var1 = True
if Var1:
print(f)
x.close()
C:\Users\anaveed\test\sample.txt
C:\Users\anaveed\test\testfile.txt
C:\Users\anaveed\test\hoax\a.txt
推荐阅读
- python - celery 上的 python 工作者 (crawler + save db) 的最佳设置
- r - 如何使用 geom_text() 标记 geom_bar(position = 'fill')
- python - 平滑拟合函数
- python - 如何在python中将二维数组添加到数据库中
- wpf - 如何在 XAML 的绑定中使用 StringFormat
- python - 使用列表读取 pandas 中的列以创建新的分类列
- c# - c#项目中如何避免代码重复
- java - 如何简化三元表达式
- php - Twig 在生产环境中截断我的数据
- html - 将媒体查询从最大宽度反转为最小宽度