如果我有一个文本文件,从第5 MB附近的行开始到文件中的干净方法是什么,并将后续5 MB的行读入列表?理想情况下是一系列行。
我知道f.seek(5000000)
从第5 MB开始,如果我估计行数,我可能估计接下来的5MB,但如果有更精确的方法则会很好。试图玩f.readlines,但这不起作用
答案 0 :(得分:2)
我假设的行为是在文件中寻找5 MB并将接下来的5 MB拆分成行。你想要的东西是:
f.seek(5*1024*1024)
lines = f.read(5*1024*1024).splitlines()
或手动计数(推荐方法,效率更高):
f.seek(5*1024*1024)
lines = []
while f.tell() < 10*1024*1024:
line = f.readline(10*1024*1024-f.tell())
lines.append(line)
但是,如果您正在计算字节数,请记得以二进制模式打开文件!