優化大型文本文件中的跳行
在查找特定行時,逐行處理大量文本文件可能效率低下。提供的程式碼迭代 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