0

我在我的一个项目中使用位数组来存储位(从具有“0”和“1”的文件中读取,以及所需的时间信息。文件也可以没有必要的字段,如注释等)。现在我想解析这些位。我在阅读文件时过滤掉了文件中所有不必要的东西。所以我需要一个可以解析位(位数组)的解析器。

目前,我正在使用简约解析器来解析字符串(即“0”和“1”),但似乎这个解析器只是将字符串作为输入。这是所有解析器的情况吗?或者我可以编写可以匹配python位数组/位字符串或列表或任何其他非字符串数据结构的语法规则吗?

因此,如果我想解析位(位数组),最好的方法是什么?

例子:

我在文件中有一个字符串“011000111100011010”。由于字符串中的“0”是一个字符,因此它在内存中占用 8 位。由于它浪费内存(因为我只需要一点来存储 0)我打算将这些位存储在位数组中。

说,我想匹配一个帧(长度为 18 位),它们可以表示如下

frame(18bits) = field1(6bits) field2(2bits) field3(5bits) field4(5bits)

那么如何编写一个可以匹配这些位的简单语法规则。

这就是我使用简约的方法。(这里我认为“0”作为一个字符)

frame_matcher = field1 field2 field3 field4
field1 = ~"[01]{6}"
field2 = ~"[01]{2}"
field3 = ~"[01]{5}"
field4 = ~"[01]{5}"

这只是一个例子,实际上场景要复杂得多。甚至文件大小也太大(~1GB)。所以我正在寻找一个可以存储位(不是字符)的数据结构和一个可以在 python 中解析位(不是字符)的解析器

4

0 回答 0