как найти шаблон в файле на другой каталог в Python на Windows? - PullRequest
1 голос
/ 10 ноября 2019

Я пишу программу, в которой мне нужно найти конкретные слова в файле другого каталога. Например: я нахожусь в C:\python\ directory, я хочу найти шаблон в файле, который находится на диске D. D:\Sample_file\file.txt. У меня есть много таких файлов в каталоге sample_file, в котором мне нужно найти конкретные слова в этом файле. Например: в D:\Sample_file\file.txt мне нужно найти "hello world" и в D:\Sample_file\file1.txt мне нужно найти «0 файлов не найдено», а в D:\Sample_another\file3.txt мне нужно найти «Боже мой !!»как это сделать.

Я пробовал os.relpath, но не смог достичь желаемого результата

import os
paths = 'D:/'

def dir_list_folder(paths):
    for folderName in os.listdir(paths):     
       if (folderName.find('.') == -1):
           folderPath = os.path.join(paths,folderName );
           dir_list_folder(folderPath);
       else:
           print ('Files is :'+ folderName );

Я ожидаю, что если он соответствует шаблону, он должен вернуть true, иначе false

1 Ответ

0 голосов
/ 10 ноября 2019

Вот пример цикла for, который вы ищете. Ожидается, что files - это список полных путей к вашим файлам.

patterns = ['hello world', '0 files found']


for fileName in files:
    with open(fileName) as f:
        allLines = {x.strip() for x in f.readlines()}
    for pattern in patterns:
        if pattern in allLines:
            print('`%s` detected in %s' % (pattern, fileName))
            # then you can return True
        # and here False

Не уверен на 100%, что это лучший подход, но я надеюсь, что он вам поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...