强制流以特定编码读取二进制数据/数据

时间:2015-10-12 23:04:54

标签: python stream

我有一个包含以windows-1251编码编码的数据的数据流。在C#中,我可以轻松地从流中读取一些数据:

private static void ReadStream(Stream stream)
{
    using (var streamReader = new StreamReader(stream, Encoding.GetEncoding(1251), true, 1024, true)
    {
        // read from stream
    }
}

// usage
using (var fileStream = File.OpenRead(@"C:\test.txt"))
{
    ReadStream(fileStream);
}

但在Python中,StreamStreamReader的概念合并为一个类。假设我有这样的代码:

def read_stream(stream):
    # read from stream
    pass

# usage
with open(r'C:\test.txt') as file_stream:
    read_stream(file_stream)

如果我在read_stream函数中,我不知道流是以二进制模式还是以文本模式打开的(以及后一种情况下使用的是哪种编码)。有没有办法用我想要的编码'重新打开'流(windows-1251)?

编辑:我正在使用Python 3.5

0 个答案:

没有答案