优化大型文本文件中的跳行
在查找特定行时,逐行处理大量文本文件可能效率低下。提供的代码迭代 15MB 文件的每一行以达到所需的行号,忽略了所需行可能位于文件中较早的位置这一事实。
另一种方法
要解决此问题,请考虑采用利用线路偏移的优化技术。这涉及读取整个文件一次以构造一个包含每行起始偏移量的列表。
Implementation
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
用法
要跳到特定行 (n),只需查找相应的偏移量:
line_number = n
file.seek(line_offset[line_number])
这种方法无需处理所有中间行,从而显着提高大文件的性能。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3