我正在编写一个涉及以下生成器表达式的程序(您可能会猜到,'sep2' 是一个已编译的正则表达式):
(chunk.group(1).strip(punctuation) for chunk in sep2.finditer(textString))
这工作正常。但是,我突然想到,如果不是使用大字符串,而是逐行处理文件,该程序将更具可扩展性。所以我尝试了以下方法:
(chunk.group(1).strip(punctuation) for chunk in (sep2.finditer(line) for line in file))
不幸的是,这会引发以下错误消息:
AttributeError: 'callable-iterator' object has no attribute 'group'
现在,我可以放弃逐行处理文件的想法——老实说,这没什么大不了的。但我很想知道这里出了什么问题。我已经在 stackoverflow(和 Python 网站,以及一般的互联网)中搜索了上面的错误消息,但没有找到任何似乎相关的内容。我认为我需要知道的是如何从内部生成器表达式(我假设)产生的“可调用迭代器”对象中获取匹配对象。但我可能只是感到困惑;我不是一个程序员(只是觉得编程有用的人)!
谢谢你的时间。