Please don't start a new thread when responding to an existing topic. Just reply-List to the message you're responding to, and include some context from that message.

On 11/28/2014 12:06 PM, ast wrote:
Hi

Here is a solution with a custom iterator which operate on files.
I tested it with a small file. Just a remark, there are no empty line
on a file, there is at least '\n' at the end of each lines but maybe the
last one. If readline() got an emptyline, then the end of file has been
reached.


class MyFileItr:
    def __init__(self, f):
        self.f = f
        self.line = ""

    def __next__(self):

        while True:
            self.line = self.f.readline()

            if (self.line == ''):
                raise StopIteration
            if not(self.line.startswith('#') or self.line.isspace() or
self.line == '\n'):
                return self.line

    def __iter__(self):
        return self


f = open('test.txt', 'r')

for L in MyFileItr(f):
    print(L, end="")


Why would you prefer that over a generator function, as given earlier in the thread? See for example Ned's message. By using 'yield', you get Python to generate all the class boilerplate for you.



--
DaveA
--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to