Python讀取大檔案的方法

2021-10-08 20:00:09 字數 725 閱讀 4751

問題:乙個大小為100g的檔案log.txt,要讀取檔案中的內容,寫出具體過程**

方法一:

利用open()系統自帶方法生成的迭代物件

with open("./data/log.txt",encoding=『utf8』) as f:

for line in f:

print(line)

for line in f 這種用法是把檔案物件f當作迭代物件, 系統將自動處理io緩衝和記憶體管理

方法二:

將檔案切分成小段,每次處理完小段內容後,釋放記憶體

這裡會使用yield生成自定義可迭代物件, 即generator, 每乙個帶有yield的函式就是乙個generator。

def read_in_block(file_path):

block_size = 1024

with open(file_path, 「r」,encoding=『utf8』) as f:

while true:

block = f.read(block_size) # 每次讀取固定長度到記憶體緩衝區

if block:

yield block

else:

return # 如果讀取到檔案末尾,則退出

file_path = 「./data/log.txt」

for block in read_in_block(file_path):

print(block)

python 讀取大檔案

以前一直沒有關注過python讀取大檔案的問題,因為一直都是順順暢暢地讀取了檔案。直到今天有人問我python怎麼讀取檔案出現了記憶體不足的錯誤?我才發現原來大檔案 gb級別 的讀取和普通檔案的讀取是不一樣的。下面介紹三種我親測可用的方法。這裡的檔案型別可以是txt,dat等型別的檔案。用read ...

python讀取大檔案

最近在學習python的過程中接觸到了python對檔案的讀取。python讀取檔案一般情況是利用open 函式以及read 函式來完成 f open filename,r f.read 這種方法讀取小檔案,即讀取遠遠大小小於記憶體的檔案顯然沒有什麼問題。但是如果是將乙個10g大小的日誌檔案讀取,即...

python 大檔案的讀取

在這裡插入 片很久以前做數學建模的時候面臨了一回大檔案的讀取問題,當時沒有什麼程式設計經驗就使用如下的 進行了讀取。with open filename,rb as fp for line in fp.readlines do something line 這種 在檔案比較小時倒也沒有太大影響,但是...