鍍金池/ 教程/ Python/ 讀寫二進制文件
基礎(chǔ)
itertools
HTTP 服務(wù)
hashlib
閉包
文件和目錄
單元測試
使用 @property
標(biāo)準(zhǔn)模塊
陌生的 metaclass
Base64
進程、線程和協(xié)程
讀寫二進制文件
匿名函數(shù)
輸入和輸出
Click
元組
字符編碼
partial 函數(shù)
參考資料
collections
協(xié)程
類和實例
Python 之旅
定制類和魔法方法
常用數(shù)據(jù)類型
繼承和多態(tài)
ThreadLocal
HTTP 協(xié)議簡介
Requests 庫的使用
讀寫文本文件
列表
os 模塊
迭代器 (Iterator)
正則表達式
集合
上下文管理器
異常處理
你不知道的 super
定義函數(shù)
datetime
資源推薦
字典
slots 魔法
hmac
第三方模塊
進程
類方法和靜態(tài)方法
函數(shù)參數(shù)
高階函數(shù)
函數(shù)
re 模塊
高級特性
線程
argparse
生成器
結(jié)束語
字符串
map/reduce/filter
函數(shù)式編程
Celery
裝飾器

讀寫二進制文件

Python 不僅支持文本文件的讀寫,也支持二進制文件的讀寫,比如圖片,聲音文件等。

讀取二進制文件

讀取二進制文件使用 'rb' 模式。

這里以圖片為例:

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

這里需要注意的是,在讀取二進制數(shù)據(jù)時,返回的數(shù)據(jù)是字節(jié)字符串格式的,而不是文本字符串。一般情況下,我們可能會對它進行編碼,比如 base64 編碼,可以這樣做:

import base64

with open('test.png', 'rb') as f:
    image_data = f.read()
    base64_data = base64.b64encode(image_data)    # 使用 base64 編碼
    print base64_data

下面是執(zhí)行結(jié)果的一部分:

iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABccqhmAAAACGFjVEw

寫入二進制文件

寫入二進制文件使用 'wb' 模式。

以圖片為例:

with open('test.png', 'rb') as f:
    image_data = f.read()

with open('/Users/ethan/test2.png', 'wb') as f:
    f.write(image_data)

小結(jié)

  • 讀取二進制文件使用 'rb' 模式。
  • 寫入二進制文件使用 'wb' 模式。

參考資料

上一篇:列表下一篇:ThreadLocal