python读有文件结束符的txt文本文件


一直用python读文件都是文本文件。用的方法是:

[code lang=”python” linenum=”off”]lines=open(‘ft.txt’)[/code]但是前两天读一个几百兆的大文件的时候,遇到了奇怪的问题,觉得是内容没有读完。定位最后读到的行,用emeditor打开,发现有一个怪字符“”。编码是“\x001a”,一查,原来是文件结束符号。
一直郁闷,奇怪为啥文本文件里面有文件结束符,试了好多办法,都不行,最后经limodou指点,原来这种情况要当成二进制文件来读。
[code lang=”python” linenum=”off”]lines=open(‘ft.txt’,’rb’)[/code]文件内容如下:
[code linenum=”off”]abcdefg[/code]
两种不同情况的结果如下:
[code lang=”python” linenum=”off”]>>> f=open(‘ft.txt’)
>>> f.read()
‘abc’
>>> f=open(‘ft.txt’,’rb’)
>>> f.read()
‘abc\x1adefg’
[/code]


《 “python读有文件结束符的txt文本文件” 》 有 2 条评论

  1. 嘛其实有C基础的都会知道加b代表二进制,因为Python的open()的格式是从C的fopen()借鉴来的。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注