二进制文件与图片读写

文章顶部广告位
728×90 或 336×280

一、引言

图片、视频、exe 等非文本文件需要用二进制模式操作!

💡 二进制模式用 rb 和 wb,不需要 encoding 参数!

二、复制文件(二进制模式)

# 复制任意文件:图片、视频、exe 都可以
with open("test.txt", "rb") as src:  # rb 读二进制
    content = src.read()

with open("test_copy.txt", "wb") as dst:  # wb 写二进制
    dst.write(content)

print("文件复制完成!")

三、大文件复制(分块读)

# 大文件不要一次性读入内存,分块读
input_path = "big_file.bin"
output_path = "big_file_copy.bin"
chunk_size = 1024 * 1024  # 1MB

with open(input_path, "rb") as src, open(output_path, "wb") as dst:
    while True:
        chunk = src.read(chunk_size)
        if not chunk:  # 读不到东西了,结束
            break
        dst.write(chunk)

print("大文件复制完成!")

四、注意事项

# 二进制模式的特点:
# 1. 不需要 encoding 参数(没有编码)
# 2. 读写的是 bytes 类型,不是 str
# 3. 可以处理任意类型的文件

# bytes 和 str 的转换
text = "Hello"
b = text.encode("utf-8")  # str → bytes
print(b)  # b'Hello'
t = b.decode("utf-8")  # bytes → str
print(t)

五、课后练习题

# 练习 1:找一张图片,用程序复制一份
# 练习 2:把一个大文件分块复制
# 练习 3:尝试把字符串转成 bytes 再转回来

总结

通过本章学习,你应该已经掌握了「二进制文件与图片读写」的相关知识。

二进制模式很强大!下一章学习异常处理!

文章中间广告位
600×300 或 300×250
← 上一篇 下一篇 →
文章底部广告位
728×90 或 300×250