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文字列
    errors文字列
    説明
    strict
    デフォルトでは、コーデックエラーが発生しましたUnicodeErrorignore
    エラーフォーマット(コーディングエラー)のデータを無視
    replace(テキスト符号化のみ適用)
    エンコーディングエラーは'?'に置き換えられました
    注:テキストエンコーディング->Unicode文字列をバイト列にエンコーディングするエンコーダです.