首页 > 解决方案 > 如何在 python 中加载带有缓冲区的文件?

问题描述

希望你今天过得愉快!

在我最近使用 Python 3.8.5 的冒险中,我遇到了一个难题,我必须说......因为我是一个相当新的程序员,我担心我没有将单个(大)文件加载到的技术知识该程序。

为了让我的问题更容易理解,让我们看看下面的内容:


  1. 假设我的系统上有一个名为“File.mp4”或“File.txt”的文件(大小为 1GB);
  2. 我想使用作为 rb 的 open 函数将此文件加载到我的程序中;
  3. 我声明缓冲区大小为 1024;

这是我不知道如何解决的部分

  1. 我将 1024 个字节加载到程序中
  2. 我做任何我需要做的事情
  3. 然后我在旧缓冲区的位置再加载 1024 个字节
  4. 冲洗并重复,直到整个文件运行完。

我查看了这个问题,但要么对我的情况不利,要么我只是不知道如何实现它->指向问题的链接


这是您要求的全部代码:

BUFFER = 1024

with open('file.txt', 'rb') as f:
while (chunk := f.read(BUFFER)) != '':
    print(list(chunk))

标签: python

解决方案


io您可以使用来自with 的缓冲输入bytearray

import io

buf = bytearray(1024)
with io.open(filename, 'rb') as fp:
    size = fp.readinto(buf)
    if not size:
       break

    # do things with buf considering the size

推荐阅读