Newline at EOF Removal
Bengt Richter
bokr at oz.net
Sun Jan 8 22:51:19 EST 2006
On Sun, 08 Jan 2006 17:10:01 -0600, "Alex Nordhus" <megahrtz at gte.net> wrote:
>
>
>I am looking for a way to strip the blank line and the empty newline at
>the end of the text file. I can get the blank lines removed from the
>file but it always leaves the end line (which is blank) as a newline. My
>code is here and it works but leaves the newline at the end of the file.
>How do I get rid of it?
>
>import re
>f = open("oldfile.txt")
>w = open("newfile.txt", "wt")
>for line in f.readlines():
> line = re.sub(r'^\s+$', '', line)
>
>
> w.write(line)
>
>w.close()
>
>I have tried everything I know and still falling short. Any help?
>
First, you don't need re for that, and second, why write a zero-length ''?
It might even confuse some file system. You don't need readlines either. Try
(untested)
# open f and w as before [1]
for line in f:
if line.strip(): w.write(line) # write only non-blank lines
[1] BTW, I didn't see the 't' mode in http://docs.python.org/lib/built-in-funcs.html
description of open/file, but I have a nagging doubt about saying it's not valid.
Where did you see it?
Regards,
Bengt Richter
More information about the Python-list
mailing list