[Tutor] Trying to extract the last line of a text file
Chris Hengge
pyro9219 at gmail.com
Thu Oct 19 23:37:21 CEST 2006
Very informative and creative reply! Thanks for sharing :]
On 10/19/06, Danny Yoo <dyoo at hkn.eecs.berkeley.edu> wrote:
>
>
>
> >> >> file('filename.txt').readlines()[-1]
> >>
> >> > Not to hijack the thread, but what stops you from just putting a
> >> > file.close() after your example line?
> >>
> >> Which file should file.close() close? The problem is that we don't
> >> have a handle on the particular file we want to close off.
> >>
> > Oh wow.. I totally missed that... nevermind.. ignore that question =D
>
>
> Hi Chris,
>
> No, no, it's an interesting one. It turns out that there IS a way to
> sorta do what you're thinking:
>
> ############################################################
> class FilePool:
> """A small demo class to show how we might keep track of
> files opened with us."""
> def __init__(self):
> self.pool = []
>
> def open(self, filename):
> f = open(filename)
> self.pool.append(f)
> return f
>
> def closeAll(self):
> for f in self.pool:
> f.close()
> self.pool = []
> fp = FilePool()
> ############################################################
>
>
> Once we have FilePool, we might say something like:
>
> ##################################################################
> print "the last line is:", fp.open('filename.txt').readlines()[-1]
> fp.closeAll()
> ##################################################################
>
>
> This is similar in spirit to the idea of "autorelease" memory pools used
> by the Objective C language. We use some resource "manager" that does
> keep a handle on resources. That manager then has the power and
> responsiblity to call close() at some point. So one might imagine doing
> something like:
>
> ############################################
> create a manager
> try:
> ... # use resources that the manager doles out
> finally:
> use the manager to close everything down
> ############################################
>
>
> So your question may have seemed like a dumb one, but it's actually a good
> one. *grin*
>
>
> Good luck!
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.python.org/pipermail/tutor/attachments/20061019/65739d51/attachment.htm
More information about the Tutor
mailing list