Вывести все текстовые файлы в каталог, который содержит серию регулярных выражений-python - PullRequest
0 голосов
/ 21 октября 2018

Итак, я пытаюсь вывести все текстовые файлы в моем каталоге, которые содержат любое из нескольких регулярных выражений.

Вот примерное регулярное выражение, которое ищет номер телефона в файле

#Search for Phone Numbers
regex2 =r'\d\d\d[-]\d\d\d[-]\d\d\d\d'

Вот мой код для получения всех файлов, но я не понимаю, куда поместить регулярное выражение.

import glob

folder_path = "C:\Temp"
file_pattern = "\*.txt"
search_string = "hello"

match_list = []

folder_contents = glob.glob(folder_path + file_pattern)

for file in folder_contents:
    print("Checking", file)
    read_file = open(file, 'rt').read()

    if search_string in read_file:
        match_list.append(file)

print("Files containing search string")
for file in match_list:
    print(file)

Вот еще один метод компиляции всех txt-файлов в моем каталоге:

import glob
import errno
path = '/home//*.txt' #note C:
files = glob.glob(path)
for name in files:
    with open(name) as f:
        for line in f:
            split = line.split()
            if split:
                print(line.split())

Я попытался вставить свое регулярное выражение в оператор if в каждом из вышеперечисленных пунктов, но выдает ошибки.Есть идеи?

1 Ответ

0 голосов
/ 21 октября 2018
import re

# Define your regex
regex2 = re.compile(r'\d\d\d[-]\d\d\d[-]\d\d\d\d')

# Read files...

# Check if we have matches in the file content
matches = regex2.findall(read_file)
if matches:
    match_list.append(file)
    print('file:', file)
    print('matches:', matches)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...