【发布时间】:2019-07-23 07:08:06
【问题描述】:
目前我正在读取一个流内并将其拼接成 3 个字节的块:
instream_chunks = [instream[i:i+3]for i in range (0, len(instream), 3)]
我没有做的是将此内流拆分为 22 位大小的块。有没有办法在 Python 中做到这一点?
编辑:流媒体是这样创建的(用于测试目的):
instream = open('C:/xxx/test.txt', 'rb+')
然后这个instream被用在这个函数中
def write(self, instream: typ.BinaryIO):
从我上面描述的开始。
【问题讨论】:
-
是什么阻止了你
[instream[i:i+22]for i in range (0, len(instream), 22)]? -
这将使块大小为 22 字节,而我希望它们是位大小的。为了进一步解释这一点:读取的数据应该被分成 22 位大小的块,以便它们可以写入二进制流中的特定字段。
-
如果 instream 的每个元素都是一个字节,那么您必须拆分各个元素,例如将 instream 从一个可迭代的字节转换为一个位。
-
内流实际上并没有定义元素,因为它是一个二进制流。它可以是文本文件、用户输入甚至是图片文件。我目前正在尝试从流中读取 22 位,但 .read() 函数似乎也没有任何特定的位功能。
-
是的,但是在不知道您从何处获得此视频流的情况下,我无法进一步帮助您。 stackoverflow.com/help/mcve