首页 > 解决方案 > 递归搜索模式和列表文件名

问题描述

我下面的代码列出了所有文件,无论模式是否匹配。文件 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

标签: python-3.5

解决方案


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


推荐阅读