當前位置:成語大全網 - 書法字典 - Python文件太大+內存裝不下+怎麽讀mongo?

Python文件太大+內存裝不下+怎麽讀mongo?

關於Python環境下讀取文件的問題,請參考我的短文?Python基礎-文件

這是壹個著名的Python面試問題,考察了Python讀取大文件和普通文件的區別,即哪些接口不適合讀取大文件。

1的問題。read()接口

f =打開(文件名,‘Rb‘)

f . read()12

讓我們讀取1個大小為3Gb的nginx至日文件。read()方法執行的操作是壹次性將所有數據讀入內存,這顯然會導致:

記憶誤差...12

也就是說,將發生內存溢出。

2.解決方案:轉換接口

(1)readlines():讀取所有行以形成壹個列表,該列表被證明會導致內存問題;

對於f.reanlines()中的行:...

1

2

(2)readline():壹次讀取壹行,

雖然正確:

line = f.readline()如果不是line: break

1

2

(3)read(1024):重載,指定每次讀取的長度。

如果為真:block = f . read(1024)如果不是block: break

1

2

3.真正的Pythonic方法

True Pythonci方法,使用with結構:

用open(文件名,‘Rb‘)作為f:表示f:

& lt用這行代碼做點什麽& gt123

對於叠代對象F,叠代F中的行,這將自動使用IO(緩沖IO和內存管理,而不用擔心任何大文件問題。

應該有壹種——最好只有壹種——顯而易見的方法來做到這壹點。