On Wed, Feb 27, 2008 at 5:01 PM, Kent Johnson <[EMAIL PROTECTED]> wrote: > > Alex Ezell wrote: > > I must be missing some simple method on a file object or something. > > > > What I need to do is to truncate the first line of a file which has an > > unknown number of lines and an unknown size. > > > > The only thing I can think to do is to readlines() and then slice off > > the first line in the resulting list, then writelines(). > > > > pseduo-code: > > my_file = open('file.txt', 'wb') > > lines = my_file.readlines() > > del lines[0] > > my_file.writelines() > > my_file.close() > > > > Is there a better way? > > No, you have to rewrite the file, that is the way the filesystem works. > > Your code above is pretty buggy though, you should at least > open file for read > readlines > close file > open file for write > writelines > close file > > Even safer is to write to a new file, then rename. The fileinput module > makes it convenient to safely overwrite a file with a new one.
Oops, forgot to send this to the list before: Thanks Kent and Bill. I typed that out really quickly, hence the "pseudo-code" disclaimer. I know it wasn't pseudo enough :) I might do something like this: os.system("sed -i '1d' %s" % filename) I suspect it will be much faster on large files, but I haven't tested that yet. Of course, it's not Python ;) and it'd be cool to know a Python way to do it. Thanks again for the help. /alex _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor