我有一个这样定义的多行字符串:
foo = """
this is
a multi-line string.
"""
这个字符串用作我正在编写的解析器的测试输入。解析器函数接收一个 file
对象作为输入,并对其进行迭代。它也直接调用 next()
方法来跳过行,所以我确实需要一个迭代器作为输入,而不是一个迭代器。
我需要一个迭代器,它像 file
对象迭代文本文件中的行一样遍历该字符串的各行。我当然可以这样做:
lineiterator = iter(foo.splitlines())
还有更直接的方法吗?在这种情况下,字符串必须为分割遍历一次,然后再由解析器遍历一次。在我的测试用例中,这并不重要,因为字符串在那里非常短,我只是出于好奇问一下。Python 有如此多有用和高效的内置功能,但是我找不到任何适合这种需要的内置功能。