python读取指定⾏到最后⼀⾏_如何从python⽂件的末尾开始
读取⾏
解决这个问题的⼀般⽅法是,按⾏反向读取⽂本⽂件,⾄少可以通过三种⽅法来解决。
⼀般的问题是,由于每⼀⾏的长度可能不同,因此您⽆法预先知道⽂件中每⼀⾏的起始位置,也⽆法知道其中有多少⾏。这意味着您需要对问题应⽤⼀些逻辑。
⼀般⽅法1:将整个⽂件读⼊内存
使⽤这种⽅法,您只需将整个⽂件读取到内存中,在某些数据结构中,随后允许您反向处理⾏列表。堆栈、双链接列表甚⾄数组都可以做到这⼀点。
优点:⾮常容易实现(据我所知,可能内置到Python中)
缺点:占⽤⼤量内存,读取⼤⽂件可能需要⼀段时间
⼀般⽅法2:读取整个⽂件,存储⾏的位置
使⽤这种⽅法,您还可以读取整个⽂件⼀次,但不是将整个⽂件(所有⽂本)存储在内存中,⽽是将⼆
进制位置存储在⽂件中每⾏开始的位置。您可以将这些位置存储在与第⼀种⽅法中存储⾏的数据结构相似的数据结构中。
python怎么读取文件中的数据⽆论您想读取X⾏,都必须从⽂件中重新读取该⾏,从存储该⾏的起始位置开始。
优点:⼏乎与第⼀种⽅法⼀样易于实施
缺点:读取⼤⽂件可能需要⼀段时间
⼀般⽅法#3:反向读取⽂件,然后“出答案”
使⽤这种⽅法,您将从末尾按块或类似⽅式读取⽂件,并查看结尾的位置。基本上有⼀个4096字节的缓冲区,并处理该缓冲区的最后⼀⾏。当⼀次只能在缓冲区中向后移动⼀⾏的处理到达缓冲区的开始时,您需要从您读取的第⼀个缓冲区之前的区域读取另⼀个缓冲区值的数据,然后继续处理。
这种⽅法通常更为复杂,因为您需要处理这样的事情:⾏在两个缓冲区上被打断,长⾏甚⾄可以覆盖两个以上的缓冲区。
然⽽,它需要最少的内存,对于真正⼤的⽂件,这样做也值得避免⾸先读取千兆字节的信息。
优点:占⽤的内存很少,不需要您先读取整个⽂件
缺点:很难实施,也很难适⽤于所有⾓落的情况
⽹络上有许多链接显⽰了如何进⾏第三种⽅法:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论