how do I "peek" into the next line?
Jeffrey Maitland
maitj at vianet.ca
Mon Dec 13 14:32:50 EST 2004
les_ander at yahoo.com writes:
> Hi,
> suppose I am reading lines from a file or stdin.
> I want to just "peek" in to the next line, and if it starts
> with a special character I want to break out of a for loop,
> other wise I want to do readline().
>
> Is there a way to do this?
> for example:
> while 1:
> line=stdin.peek_nextline()
> if not line: break
> if line[0]=="|":
> break:
> else:
> x=stdin.nextline()
> # do something with x
>
> thanks
>
> --
> http://mail.python.org/mailman/listinfo/python-list
Well what you can do is read the line regardless into a testing variable.
here is some sample code (writting this off the topof my head so syntax
might be off some)
import re
file = open("test.txt", 'r')
variablestr = '' #this would be your object.. in my example using a string
for the file data
file.seek(0,2)
eof = file.tell() #what this is the position of the end of the file.
file.seek(0,0)
while file.tell() != eof:
testline = file.readline()
if re.match("#", testline) == True:
break
else:
variablestr += testline
file.close()
now if I was concerned with being at the beging of the testline that it read
in what you can do is in the if is something like:
file.seek((file.tell() - len(testline)), 0)
and that will move you back to the beginging of that line which is where the
readline from the previous call left you before the "peek".
hope that helps some..
Jeff
More information about the Python-list
mailing list