Python標準ライブラリ-codecsモジュール
7400 ワード
codecs
一般的な関数
codecs.encode(obj, encoding='utf-8', errors='strict')
str.encode()メソッドと同様にencodingに登録されたコーデックを使用してobjを符号化する.>>> codecs.encode(" ,world",encoding='ascii')
Traceback (most recent call last):
...
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128)
>>>
>>> codecs.encode(" ,world",encoding='ascii',errors='replace')
b'??,world'
codecs.decode(obj, encoding='utf-8', errors='strict')
str.decode()メソッドと同様にencodingに登録されたコーデックを使用してobjを復号する.codecs.lookup(encoding)
Pythonコーデックレジストリでコーデック情報を検索し、CodecInfo
オブジェクトを返します.>>> import codecs
>>>
>>> gbk = codecs.lookup('gbk')
>>> gbk.encode(" ,world")
(b'\xc4\xe3\xba\xc3,world', 8)
>>> codecs.lookup('uuuu')
Traceback (most recent call last):
...
LookupError: unknown encoding: uuuu
CodeInfoオブジェクトのプロパティ/メソッド
説明
name
エンコーディング名
encode/decode
ステータスレスコーディング関数
streamwriter/streamreader
ストリームライタとリーダクラスまたはファクトリ関数.
incrementalencoder/incrementaldecoder
インクリメンタルなエンコーダおよびデコーダクラスまたはファクトリ関数.
>>> utf8 = codecs.lookup('utf-8')
>>> utf8.name
"utf-8"
codecs.getencoder(encoding)
は、所与の符号化されたコーデックを検索し、そのエンコーダ関数を返す.>>> u8_encode = codecs.getencoder("utf8")
>>> u8_encode(" ,world.")
(b'\xe4\xbd\xa0\xe5\xa5\xbd,world.', 9)
codecs.getdecoder(encoding)
は、所与の符号化されたコーデックを検索し、そのデコーダ関数を返す.>>> b_data, _ = u8_encode(" ,world.")
>>> u8_decode = codecs.getdecoder("utf-8")
>>> u8_decode(b_data)
(' ,world.', 13)
codecs.open(filename, mode='r', encoding=None, errors='strict', buffering=1)
は、所与のmodeを使用して符号化されたファイルを開き、透明な符号化/復号を提供するStreamReaderWriter
の例を返す.組み込み関数openと似ています.errors文字列
説明
strict
デフォルトでは、コーデックエラーが発生しました
UnicodeError
ignore エラーフォーマット(コーディングエラー)のデータを無視
replace(テキスト符号化のみ適用)
エンコーディングエラーは
'?'
に置き換えられました注:テキストエンコーディング->Unicode文字列をバイト列にエンコーディングするエンコーダです.