读写二进制文件

Python 不仅支持文本文件的读写,也支持二进制文件的读写,比如图片,声音文件等。

读取二进制文件

读取二进制文件使用 ‘rb’ 模式。

这里以图片为例:

  1. with open('test.png', 'rb') as f:
  2. image_data = f.read() # image_data 是字节字符串格式的,而不是文本字符串

这里需要注意的是,在读取二进制数据时,返回的数据是字节字符串格式的,而不是文本字符串。一般情况下,我们可能会对它进行编码,比如 base64 编码,可以这样做:

  1. import base64
  2. with open('test.png', 'rb') as f:
  3. image_data = f.read()
  4. base64_data = base64.b64encode(image_data) # 使用 base64 编码
  5. print base64_data

下面是执行结果的一部分:

  1. iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABccqhmAAAACGFjVEw

写入二进制文件

写入二进制文件使用 ‘wb’ 模式。

以图片为例:

  1. with open('test.png', 'rb') as f:
  2. image_data = f.read()
  3. with open('/Users/ethan/test2.png', 'wb') as f:
  4. f.write(image_data)

小结

  • 读取二进制文件使用 ‘rb’ 模式。
  • 写入二进制文件使用 ‘wb’ 模式。

参考资料