优化大型文本文件中的跳行
在查找特定行时,逐行处理大量文本文件可能效率低下。提供的代码迭代 15MB 文件的每一行以达到所需的行号,忽略了所需行可能位于文件中更早的位置这一事实。
另一种方法
要解决此问题,请考虑采用利用线路偏移的优化技术。这涉及读取整个文件一次以构造一个包含每行起始偏移量的列表。
实现
<code class="python">line_offset = [] # List to store line offsets offset = 0 # Current offset # Loop through each line in the file for line in file: line_offset.append(offset) # Store the current line offset offset += len(line) # Update the offset for the next line file.seek(0) # Reset the file pointer to the beginning</code>
用法
要跳到特定行 (n),只需查找相应的偏移量:
<code class="python">line_number = n file.seek(line_offset[line_number])</code>
这种方法无需处理所有中间行,从而显着提高大文件的性能。
以上是行偏移如何优化大型文本文件中的跳行?的详细内容。更多信息请关注PHP中文网其他相关文章!