如何编写可从文件读取的生成器函数?

时间:2018-08-08 14:57:36

标签: python

这是我到目前为止的代码:

我从同一类调用生成器函数

g = self.gen(infile)

我想迭代g

for line in infile:
    ...
    numb, c1, winner, c2, scorerTimes = next(g)

但是经过一些调试之后,我发现g只能被迭代一次

这是我的生成器函数

def gen(self, infile):
    values = []
    winner = ""
    line = infile.readline()
    while not(line.startswith("(")):
        line = infile.readline()
    while True:
        m = re.search("(\d+)\)\s\w+\s\w+/+\d+\s+\d+:\d+\s+(\w+)\s+(\d+)-(\d+).[^)]+\)\s+(\w+)", line)

        line = infile.readline()
        n = re.findall("(\w\s*\w+)\s(\d+)", line)
        if int(m.group(3)) > int(m.group(4)):
            winner = m.group(2)
        else:
            winner = m.group(5)
        yield m.group(1), m.group(2), winner, m.group(5), n

我编写的生成器函数错误吗?这是我第一次使用发电机,所以有些困惑。

0 个答案:

没有答案