Я пытаюсь найти шаблон с помощью класса.
У меня есть пример текстового файла. Я должен найти строку поиска ("Debug_logs") в каждой строке текстового файла. Затем я должен распечатать дату поиска по шаблону, (\d\d\d\d-\d\d-\d\d)
Без использования класса я могу делать и получать отличные результаты.
Но как заставить его работать с классом и объектами.
import re
class text_processing:
def __init__(self,file_name):
print ("File opened")
self.file_name = file_name
self.search_pat = 'DEBUG Facebook'
def search(self):
print ("in sreach function")
for line in self.file_name:
print (line)
if self.search_pat in line:
print (self.line)
for i in self.search_pat:
print re.findall(r"\d\d\d\d-\d\d-\d\d", self.search_pat)
break
def main():
filename = 'sample1.txt'
file_open = open(filename, "r")
x = text_processing(file_open)
x.search()
Я не уверен, что это именно то, что вы хотите, чтобы это сделать точно, но я исправил проблемы с открытием файла и тому подобное (теперь объекту передается имя файла, и файл открывается только тогда, когда функция search() называется), и еще несколько вещей.
import re
class text_processing:
def __init__(self,file_name):
self.file_name = file_name
self.search_pat = 'DEBUG Facebook'
def search(self):
print ("File opened")
print ("in search function")
with open(self.file_name, "r") as file:
for line in file:
print (line)
if self.search_pat in line:
print (re.findall(r"\d\d\d\d-\d\d-\d\d", line))
def main():
filename = 'sample1.txt'
x = text_processing(filename)
x.search()
main()
Прежде чем вы искали шаблон в self.search_pat
, который является только текстом "DEBUG Facebook", так что он ничего не нашел. Вы также перебирали каждого персонажа в "DEBUG Facebook", и поэтому вы избыточно искали 14 раз, когда re.findall
уже проходит и обнаруживает все вхождения.
Надеюсь, я понял, чего вы пытаетесь достичь правильно и помог вам :)