Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.python > #103578
| From | Terry Reedy <tjreedy@udel.edu> |
|---|---|
| Newsgroups | comp.lang.python |
| Subject | Re: Lookahead while doing: for line in fh.readlines(): |
| Date | 2016-02-27 06:46 -0500 |
| Message-ID | <mailman.170.1456573604.20994.python-list@python.org> (permalink) |
| References | <narqnp$4bm$1@dont-email.me> |
On 2/27/2016 4:39 AM, Veek. M wrote:
> I want to do something like:
>
> #!/usr/bin/env python3
>
> fh = open('/etc/motd')
> for line in fh.readlines():
> print(fh.tell())
>
> why doesn't this work as expected.. fh.readlines() should return a
> generator object and fh.tell() ought to start at 0 first.
Not after you have already read some data. Readlines() reads the entire
file and splits it into lines. readline reads at least a single block.
Reading a single byte or character at a time looking for /n would be
too slow, so even after readline, the file pointer will be somewhere
past the end of the last line returned.
> Instead i get the final count repeated for the number of lines.
>
> What i'm trying to do is lookahead:
> #!whatever
>
> fh = open(whatever)
> for line in fh.readlines():
> x = fh.tell()
> temp = fh.readline()
> fh.seek(x)
>
--
Terry Jan Reedy
Back to comp.lang.python | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Lookahead while doing: for line in fh.readlines(): "Veek. M" <vek.m1234@gmail.com> - 2016-02-27 15:09 +0530
Re: Lookahead while doing: for line in fh.readlines(): Terry Reedy <tjreedy@udel.edu> - 2016-02-27 06:46 -0500
Re: Lookahead while doing: for line in fh.readlines(): "Veek. M" <vek.m1234@gmail.com> - 2016-03-04 18:34 +0530
Re: Lookahead while doing: for line in fh.readlines(): MRAB <python@mrabarnett.plus.com> - 2016-03-04 18:36 +0000
Re: Lookahead while doing: for line in fh.readlines(): "Veek. M" <vek.m1234@gmail.com> - 2016-03-05 09:01 +0530
csiph-web