<p>我试着读前100行大文本文件。下面显示了执行此操作的简单代码。不过,挑战在于,我必须防范腐败或其他扭曲的文件没有任何换行符(是的,人们总能找到生成这些文件的方法)。在这些情况下,我仍然希望读入数据(因为我需要查看其中发生了什么),但将其限制在,比如说,n个字节。在</p>
<p>我能想到的唯一方法就是逐个读取文件。除了速度慢(可能对100行来说不是问题),我还担心遇到使用非ASCII编码的文件时会遇到麻烦。在</p>
<p>是否可以使用readline()限制读取的字节数?还是有更优雅的方式来处理这个问题?在</p>
<pre><code>line_count = 0
with open(filepath, 'r') as f:
for line in f:
line_count += 1
print('{0}: {1}'.format(line_count, line))
if line_count == 100:
break
</code></pre>
<p><strong>编辑:</strong></p>
<p>正如@Fredrik正确指出的那样,readline()接受一个限制读取字符数的参数(我以为它是一个缓冲区大小参数)。因此,就我的目的而言,以下方法非常有效:</p>
^{pr2}$