Python讀取大文件的解決方案

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)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章