> Hard to believe that lstrip() produces an empty string on lines with > just spaces and doesn't remove the '\n' with lines that have > characters.
It's easy to understand that lstrip() is doing exactly what it's supposed to. It evaluates from the left of your string, discarding whitespace (spaces, tabs, and cr/lf characters) until it hits a non-whitespace character or the end of the string. When there's no non-whitespace, it returns an empty string. If you wanted to remove the \n from the right of lines, there was an earlier discussion on the list where someone (Bruno?) and I went back and forth and I think we finally decided that the "best" solution was s.rstrip('\n') which had the fewest side-effects. However, when you use the output.write() method, you'd then have to add the \n back in to make sure it ended up in the output stream. If you wanted to continue to use lstrip(), you could also just ensure that you're only stripping spaces (chr(0x20)) by using s.lstrip(' ') This would leave \t and \n characters unmolested. More info can be found at >>> help("".lstrip) >>> help("".rstrip) >>> help("".strip) Hope this helps, -tkc -- http://mail.python.org/mailman/listinfo/python-list