代码之家  ›  专栏  ›  技术社区  ›  Tzach

解码以二进制模式打开的类似文件的对象

  •  0
  • Tzach  · 技术社区  · 7 年前

    在python中,给定一个以二进制模式打开的类文件对象,在不将所有内容加载到内存的情况下,将其转换为UTF8解码的类文件对象的最佳方法是什么?

    1 回复  |  直到 7 年前
        1
  •  1
  •   Mark Tolonen    7 年前

    您可以获取特定编码的StreamReader并将其传递给流。它将只返回完全解码的代码点。

    #coding:utf8
    import codecs
    import io
    
    # A file-like binary stream.
    data = io.BytesIO('我是美国人。\n你是中国人。\n'.encode('utf8'))
    
    # Get the UTF-8 StreamReader class and instantiate it on the data.
    f = codecs.getreader('utf8')(data)
    
    print(f.read(2))
    f.seek(0)
    for line in f:
        print(line,end='')
    

    输出:

    我是
    我是美国人。
    你是中国人。