我对python还是很陌生,在理解如何建立适当的类方面有些麻烦。 我目前正在寻找一种方法,让我的班级在txt文件中找到单词(或任何其他正则表达式)并打印这些单词(蓝色)及其行。现在,我的课程做得并不多,我也不知道为什么。
代码如下:
import re
class RegIter():
def __init__(self, path, regexp):
with open (path) as f:
self.text=f.read()
self.text=str(re.finditer("\w+|[^\w ]+",self.text))
self.wörter=list()
wörter=self.wörter
self.regexp=re.compile(self.text)
def print(self):
print(self.text)
def makeBlue(text):
return ("\033[34m"+str(text)+"\033[0m")
def __str__(self):
beginn=0
for match in self.regexp.finditer(line):
start=match.start()
end=match.end()
print(line[beginn:start], end="")
beginn=end
return(line[start:end])
print(self.makeBlue(line[start:end]), end="")
def __iter__(self):
self.c=0
return self
def __next__(self):
if self.c<len(self.wörter):
returner=self.wörter[self.c]
else:
raise StopIteration
self.c+=1
return returner
def __len__(self):
return len(self.wörter)
myobject=RegIter("Bsp1.txt", "\w+|[^\w ]+")
print(len(myobject))
for match in myobject:
print(match)
print(myobject)
发现错误可能很容易,但是我找不到为什么它不起作用。