python两种不同的文件流读写

冰川箭仙
发布: 2025-10-26 14:59:01
原创
472人浏览过
文本模式用于处理字符数据,自动转换编码和换行符,读写字符串类型,适合.txt、.csv等文本文件;2. 二进制模式以rb/wb等方式打开,不进行编码转换,读写bytes类型,适用于图片、音频等非文本文件。

python两种不同的文件流读写

在 Python 中,文件流的读写操作主要有两种方式:文本模式和二进制模式。它们适用于不同的场景,处理的数据类型也不同。下面详细介绍这两种方式的区别和使用方法。

1. 文本模式(Text Mode)

文本模式用于读写字符数据,通常处理的是人类可读的文本文件,比如 .txt、.csv、.json 等。在这种模式下,Python 会自动处理编码转换(如 UTF-8),并把换行符进行标准化(例如将 \r\n 转为 \n)。

常见操作:

• 打开文件时默认使用文本模式(即 mode='r')
• 指定编码格式,推荐使用 encoding='utf-8'
• 读取和写入的是字符串(str)类型

示例代码:

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

f = open('example.txt', 'r', encoding='utf-8')
content = f.read()
f.close() f = open('output.txt', 'w', encoding='utf-8')
f.write('Hello, 世界!')
f.close()

建议使用 with 语句更安全地操作文件:

with open('example.txt', 'r', encoding='utf-8') as f:
    content = f.read()

2. 二进制模式(Binary Mode)

二进制模式用于读写原始字节数据,适合处理非文本文件,如图片、音频、视频、PDF 或任何需要保持原始字节不变的文件。这种模式不会做任何编码或换行符转换。

小绿鲸英文文献阅读器
小绿鲸英文文献阅读器

英文文献阅读器,专注提高SCI阅读效率

小绿鲸英文文献阅读器 199
查看详情 小绿鲸英文文献阅读器

特点:

• 文件模式以 b 结尾,如 'rb'、'wb'
• 读取返回 bytes 类型,写入也必须是 bytes
• 不指定 encoding 参数

示例代码:

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

with open('image.png', 'rb') as f:
    data = f.read() with open('copy_image.png', 'wb') as f:
    f.write(data)

如果要在二进制模式中写入字符串,需要先编码:

text = "Hello"
binary_data = text.encode('utf-8')
with open('data.bin', 'wb') as f:
    f.write(binary_data)

基本上就这些。文本模式适合日常文本处理,二进制模式用于精确控制字节流。根据文件类型选择合适的方式,能避免乱码或数据损坏问题。

以上就是python两种不同的文件流读写的详细内容,更多请关注php中文网其它相关文章!

python速学教程(入门到精通)
python速学教程(入门到精通)

python怎么学习?python怎么入门?python在哪学?python怎么学才快?不用担心,这里为大家提供了python速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源: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号