Python 文件分块读取与写入技巧

舞姬之光
发布: 2025-11-21 17:40:37
原创
799人浏览过
分块读写可避免内存溢出,核心是按固定大小逐步操作文件。使用read(size)和生成器逐块读取,配合'rb'和'wb'模式实现高效复制。处理文本时需注意行完整性,可缓存断行部分。该方法适用于大文件处理、网络传输等场景。

python 文件分块读取与写入技巧

处理大文件时,直接一次性读取或写入容易导致内存溢出。Python 提供了分块读取与写入的方法,既能节省内存,又能高效处理数据。核心思路是按固定大小的块逐步操作文件内容。

分块读取文件

使用 read(size) 方法可以每次只读取指定字节数的内容,避免加载整个文件到内存。

常见做法是设置一个块大小(如 8192 或 65536 字节),循环读取直到文件结束:

def read_in_chunks(file_path, chunk_size=8192):
    with open(file_path, 'rb') as f:
        while True:
            chunk = f.read(chunk_size)
            if not chunk:
                break
            yield chunk
<h1>使用示例</h1><p>for chunk in read_in_chunks('large_file.txt'):
process(chunk)  # 自定义处理函数</p>
登录后复制

说明:采用生成器模式,适合处理超大文件;'rb' 模式表示以二进制方式读取,适用于所有类型文件。

立即学习Python免费学习笔记(深入)”;

分块写入文件

向文件写入大量数据时,也应分批进行,防止内存堆积。

MagicStudio
MagicStudio

图片处理必备效率神器!为你的图片提供神奇魔法

MagicStudio 102
查看详情 MagicStudio

可结合读取的生成器,边读边写,实现高效复制或转换:

def copy_file_by_chunks(src, dst, chunk_size=8192):
    with open(src, 'rb') as fin, open(dst, 'wb') as fout:
        while True:
            chunk = fin.read(chunk_size)
            if not chunk:
                break
            fout.write(chunk)
登录后复制

说明:'wb' 表示以二进制写入;该方法可用于大文件复制、下载保存等场景。

文本文件的分块处理注意事项

若处理的是文本文件(如日志、CSV),需注意分块可能在行中间切断,影响解析。

建议改用逐行读取或确保块边界完整性:

  • 使用 for line in file: 更安全,适合按行处理
  • 若必须分块,可在每块末尾缓存断行部分,合并到下一块开头
  • 例如在网络传输或日志流中,常用此策略保证行完整

基本上就这些。掌握分块读写,能有效应对大文件挑战,提升程序稳定性。

以上就是Python 文件分块读取与写入技巧的详细内容,更多请关注php中文网其它相关文章!

相关标签:
最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号