python讀取超大文件
1)普通讀文件方法弊端分析
1.with 上下文管理器會自動關閉打開的文件描述符,在迭代文件對象時,內容是一行一行返回的,不會佔用太多內存
2. 如果python讀取文件如果被讀取的文件裏,根本就沒有任何換行符,將會變成一個非常巨大的字符串對象,佔用大量內存。
python普通方法讀文件
#! /usr/bin/env python
# -*- coding: utf-8 -*-
def read_file(fname):
with open(fname) as file:
for line in file:
print(line.strip('\n'),)
path = r'C:\aaa\luting\edc-backend\aaa.py'
read_file(path)
2)讀取大文件正確方式
1. 我們使用了一個 while 循環來讀取文件內容,每次最多讀取 8kb 大小
2. 這樣可以避免之前需要拼接一個巨大字符串的過程,把內存佔用降低非常多。
python讀取大文件
#!/usr/bin/python
# -*- coding: utf-8 -*-
def read_big_file_v(fname):
block_size = 1024 * 8
with open(fname,encoding="utf8") as fp:
while True:
chunk = fp.read(block_size)
# 當文件沒有更多內容時,read 調用將會返回空字符串 ''
if not chunk:
break
print(chunk)
path = r'C:\aaa\luting\edc-backend\tttt.py'
read_big_file_v(path)