Good stuff! Since I'm only interested in spaces being my only whitespace it makes sense for me to use "line.lstrip(whitespace)" in my script, thus eliminating the "elif char == '\n':" statement. Thanks, Jim
Tim Chase wrote: > > 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