如何在python中使用类在文本文件中进行模式搜索
我正在尝试使用类搜索模式 我有一个示例文本文件。我必须在文本文件的每一行中查找搜索字符串(“调试日志”)。 然后我必须使用模式打印搜索行的日期,如何在python中使用类在文本文件中进行模式搜索,python,Python,我正在尝试使用类搜索模式 我有一个示例文本文件。我必须在文本文件的每一行中查找搜索字符串(“调试日志”)。 然后我必须使用模式打印搜索行的日期,(\d\d\d\d-\d\d-\d\d) 不用上课,我就能做到,取得完美的成绩 但是如何使它与类和对象一起工作 import re class text_processing: def __init__(self,file_name): print ("File opened") self.file_name
(\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\u pat中的模式之前,它只是一个文本“DEBUG Facebook”,所以没有找到任何东西。你还在“DEBUG Facebook”中循环搜索每个字符,因此当re.findall
已经循环搜索并找到所有出现的字符时,你重复搜索了14次
我希望我正确地理解了您想要实现的目标,并帮助您:)!!!停止使用open(filename)-这段代码是使用后忘记关闭文件的典型示例!!!!有一个结构的打开(文件名)为。。。这为您关闭了资源!也更喜欢在需要时打开文件(获取资源)。我刚刚测试了你的代码,只要你调用main(),它就可以为我工作,即使它可以工作-它可以改进,而且内存泄漏的错误应该得到修复-通常如果你真的想使用它的话it@DeltaMarine101是的,它没有显示任何错误,但它不会进入搜索方法的for循环。@Drako您能举个例子来改进它吗?你可以更改我的代码,也可以发布。。。