<div>Whops!</div>In my peekline examples obviously <span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: 13px; background-color: rgb(255, 255, 255); ">f.peeklines must be replaced with </span><span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: 13px; background-color: rgb(255, 255, 255); ">f.readlines. =)</span><div>
<font class="Apple-style-span" face="arial, sans-serif"><br></font></div><div><font class="Apple-style-span" face="arial, sans-serif"><br></font></div><div><font class="Apple-style-span" face="arial, sans-serif"><span class="Apple-style-span" style="font-size: 13px; background-color: rgb(255, 255, 255); "><div>
<font face="arial, sans-serif">Regards,</font></div><div><font face="arial, sans-serif"><br></font></div><div><font face="arial, sans-serif">--- Giampaolo</font></div><div><font face="arial, sans-serif"><a href="http://code.google.com/p/pyftpdlib/" target="_blank" style="color: rgb(0, 0, 204); ">http://code.google.com/p/pyftpdlib/</a></font></div>
<div><font face="arial, sans-serif"><a href="http://code.google.com/p/pyftpdlib/" target="_blank" style="color: rgb(0, 0, 204); ">http://code.google.com/p/psutil/</a></font></div></span></font></div><div><br><div class="gmail_quote">
2011/9/30 Giampaolo Rodolą <span dir="ltr"><<a href="mailto:g.rodola@gmail.com">g.rodola@gmail.com</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<span style="font-family:arial, sans-serif;font-size:13px;background-color:rgb(255, 255, 255)">+0.5 about f.readlines(maxlines=10); it might be a good addition since the sizehint parameter does not allow an actual prediction of how many lines will be returned. </span><div>

<span style="font-family:arial, sans-serif;font-size:13px;background-color:rgb(255, 255, 255)">On the other side the two arguments </span><span style="font-family:arial, sans-serif;font-size:13px;background-color:rgb(255, 255, 255)">are mutually exclusive, </span><span style="font-family:arial, sans-serif;font-size:13px;background-color:rgb(255, 255, 255)">therefore I'm not sure what expect in case both are specified (maybe ValueError, but such kind of APIs always leave me a little skeptical).</span></div>

<div><div><div><font face="arial, sans-serif">+0 about <span style="font-size:13px;background-color:rgb(255, 255, 255)">f.peeklines(10) as it only saves one line of code:</span></font></div>
<div><font face="arial, sans-serif"><span style="font-size:13px;background-color:rgb(255, 255, 255)"><br></span></font></div><div><font face="arial, sans-serif"><span style="font-size:13px;background-color:rgb(255, 255, 255)">f.peeklines(10)</span></font></div>

<div><font face="arial, sans-serif"><span style="font-size:13px;background-color:rgb(255, 255, 255)">f.seek(0)</span></font></div><div><font face="arial, sans-serif"><span style="font-size:13px;background-color:rgb(255, 255, 255)"><br>

</span></font></div><div><font face="arial, sans-serif"><span style="font-size:13px;background-color:rgb(255, 255, 255)">...or 2 in case you're not at the beginning of the file.</span></font></div>
<div><font face="arial, sans-serif"><span style="font-size:13px;background-color:rgb(255, 255, 255)"><br></span></font></div><div><font face="arial, sans-serif"><span style="font-size:13px;background-color:rgb(255, 255, 255)">before = f.tell()</span></font></div>

<div><span style="font-family:arial, sans-serif;font-size:13px;background-color:rgb(255, 255, 255)">f.peeklines(10)</span></div><div><span style="font-family:arial, sans-serif;font-size:13px;background-color:rgb(255, 255, 255)">f.seek(before)</span></div>

<div><span style="font-family:arial, sans-serif;font-size:13px;background-color:rgb(255, 255, 255)"><br></span></div><div><font face="arial, sans-serif">Not a great advantage vs. the fact of introducing (and remembering) a new function, in my opinion.</font></div>

<div><font face="arial, sans-serif"><br></font></div><div><font face="arial, sans-serif">Regards,</font></div><div><font face="arial, sans-serif"><br>
</font></div><div><font face="arial, sans-serif">--- Giampaolo</font></div><div><font face="arial, sans-serif"><a href="http://code.google.com/p/pyftpdlib/" target="_blank">http://code.google.com/p/pyftpdlib/</a></font></div>

<div><font face="arial, sans-serif"><a href="http://code.google.com/p/pyftpdlib/" target="_blank">http://code.google.com/p/psutil/</a><br></font><div><div></div><div class="h5"><br><div class="gmail_quote">2011/9/30 John O'Connor <span dir="ltr"><<a href="mailto:jxo6948@rit.edu" target="_blank">jxo6948@rit.edu</a>></span><br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">It seems there could be a cleaner way of reading the first n lines of<br>
a file and additionally not seeking past those lines (ie peek). This<br>
is obviously a trivial task for 1 line ie...<br>
f.readline()<br>
f.seek(0)<br>
but one that I think would make sense to add to the IO implementation,<br>
given that we already have readline, readlines, and peek I think<br>
peekline() or peeklines(n) is only a natural addition. The argument<br>
for doing so (in 3.3 of course), is primarily readability but also<br>
that the maintenance burden *seems* like it would be low. This<br>
addition would also be helpful and more concise where n > 1.<br>
<br>
I think readlines() should also take an optional argument for a max<br>
number of lines to read. It seems more common/helpful to me than<br>
'hint' for max bytes. In n>1 case one could do...<br>
<br>
f.readlines(maxlines=10)<br>
<br>
or for the 'peek' case<br>
<br>
f.peeklines(10)<br>
<br>
<br>
I also didn't find any of the answers from<br>
<a href="http://stackoverflow.com/questions/1767513/read-first-n-lines-of-a-file-in-python" target="_blank">http://stackoverflow.com/questions/1767513/read-first-n-lines-of-a-file-in-python</a><br>
to be very compelling.<br>
<br>
I am more than willing to propose a patch if the idea(s) are supported.<br>
<br>
- John<br>
_______________________________________________<br>
Python-ideas mailing list<br>
<a href="mailto:Python-ideas@python.org" target="_blank">Python-ideas@python.org</a><br>
<a href="http://mail.python.org/mailman/listinfo/python-ideas" target="_blank">http://mail.python.org/mailman/listinfo/python-ideas</a><br>
</blockquote></div><br></div></div></div></div></div>
</blockquote></div><br></div>