detecting newline character

Daniel Geržo danger at rulez.sk
Sat Apr 23 20:09:27 CEST 2011


Hello guys,

I need to detect the newline characters used in the file I am reading. 
For this purpose I am using the following code:

def _read_lines(self):
     with contextlib.closing(codecs.open(self.path, "rU")) as fobj:
         fobj.readlines()
         if isinstance(fobj.newlines, tuple):
             self.newline = fobj.newlines[0]
         else:
             self.newline = fobj.newlines

This works fine, if I call codecs.open() without encoding argument; I am 
testing with an ASCII enghlish text file, and in such case the 
fobj.newlines is correctly detected being as '\r\n'. However, when I 
call codecs.open() with encoding='ascii' argument, the fobj.newlines is 
None and I can't figure out why that is the case. Reading the PEP at 
http://www.python.org/dev/peps/pep-0278/ I don't see any reason why 
would I end up with newlines being None after I call readlines().

Anyone has an idea? You can fetch the file I am testing with from 
http://danger.rulez.sk/subrip_ascii.srt

Thanks.

-- 
S pozdravom / Best regards
   Daniel Gerzo



More information about the Python-list mailing list