how do I "peek" into the next line?
Steven Bethard
steven.bethard at gmail.com
Mon Dec 13 15:48:42 EST 2004
More information about the Python-list mailing list
Mon Dec 13 15:48:42 EST 2004
- Previous message (by thread): how do I "peek" into the next line?
- Next message (by thread): how do I "peek" into the next line?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Skip Montanaro wrote: > les> suppose I am reading lines from a file or stdin. I want to just > les> "peek" in to the next line, and if it starts with a special > les> character I want to break out of a for loop, other wise I want to > les> do readline(). > > Create a wrapper around the file object: > [snip] > > Of course, this could be tested (which my example hasn't been) If you'd like something that works similarly and has been tested a bit, try one of my recipes for peeking into an iterator: http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/304373 You also might consider writing an iterator wrapper for a file object: >>> class strangefileiter(object): ... def __init__(self, file): ... self.itr = iter(file) ... def __iter__(self): ... while True: ... next = self.itr.next() ... if not next or next.rstrip('\n') == "|": ... break ... yield next ... >>> file('temp.txt', 'w').write("""\ ... some text ... some more ... | ... not really text""") >>> for line in strangefileiter(file('temp.txt')): ... print repr(line) ... 'some text\n' 'some more\n' >>> file('temp.txt', 'w').write("""\ ... some text ... some more ... ... really text""") >>> for line in strangefileiter(file('temp.txt')): ... print repr(line) ... 'some text\n' 'some more\n' '\n' 'really text' Steve
- Previous message (by thread): how do I "peek" into the next line?
- Next message (by thread): how do I "peek" into the next line?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-list mailing list