Автор оригинала: Team Python Pool.
Хотите понять и работать на языке, который понимают ваш компьютер и языки, такие как python? Просто пройдите эту статью одну, мы поможем вам достичь вашей цели. В этой статье мы узнаем об интересном модуле в python, известном как python bitstring.
Python Bitstring обычно определяется как модуль, который делает создание, анализ и манипулирование двоичными данными (содержит только 0 и 1) простым и естественным.
Мы увидим, как мы можем создавать битовые строки и как выполнять над ними операции. А если вы работаете на Python 2.7, вам не нужно беспокоиться, и модуль python bitstring поддерживает обе версии- 2.7 и 3.
Синтаксис модуля Bitstring Python
Мы не можем использовать модуль до тех пор, пока не установим его в наши системы.
Для установки используйте – pip install bitstring.
Классы в модуле Bitstring
Основная цель модуля-помочь нам в работе с двоичными данными на языке программирования python и сделать ее максимально простой. И именно поэтому модуль компрометирует четыре класса, которые помогут нам выполнить все наши задачи. Давайте разберемся в основах каждого из них.
Биты(auto=None,,, **kwargs)
Основное использование этого класса заключается в создании контейнера, который содержит неизменяемую последовательность битов. Под неизменным мы подразумеваем, что оно не может быть изменено после сотворения.
Параметры–
Авто: Это может быть строка разделенных запятыми токенов , целое число, файловый объект, bytearray, логическая итерация, массив или другая битовая строка. По умолчанию это None, и вы можете оставить его таким, используя аргумент ключевого слова.
Offset: Этот параметр можно использовать только при использовании инициализаторов байтов или имен файлов. Если мы хотим игнорировать некоторые стартовые биты, мы можем использовать параметр offset. **kwargs: В этом параметре мы можем указать тип и значение, из которых мы хотим создать битовую строку. Это могут быть байты, bin, hex, oct, uint (unsigned int), int, filename и многие другие типы. Возвращает тип Python bitstring . биты: Он возвращает ‘bitstring.Тип вывода битов. Некоторые из распространенных методов – all(), any(), count(), endswith(), find(). Мы не будем изучать теоретическую часть этих методов, потому что это сделает тему довольно запутанной. Позже мы попытаемся использовать их в наших программах. Этот класс является производным классом класса Bits, который мы изучали ранее. Основное и фундаментальное различие заключается в том, что BitArray возвращает изменяемые битовые строки. Это означает, что содержимое битов может быть изменено после того, как они были созданы. Параметры одинаковы для класса BitArray, так что вы можете ссылаться на них сверху. Тип возврата: <класс ‘bitstring.BitArray’> Некоторые распространенные методы – append(bs), byteswap(), clear(), insert(). Этот класс также является производным классом класса Bits. Все методы, доступные в классе Bits, доступны в классе ConstBitStream. Автоинициализатор тоже такой же. В ConstBitStream класс имеет некоторые добавленные свойства и методы, которые позволяют анализировать биты как поток. Мы не будем обсуждать параметры, потому что они такие же, как и выше. <класс ‘bitstring.ConstBitStream’> Некоторые распространенные методы-bytealign(), peek(), peek list(). Этот класс почти такой же, как класс ConstBitStream. Единственное отличие заключается в том, что этот класс допускает изменяемые битовые потоки. Тип возврата- <класс ‘bitstring.Битовый поток’> Пока хватит теории! Давайте сразу перейдем к href=”http://www.dictionary.com/browse/practical”>практическая часть этого модуля. href=”http://www.dictionary.com/browse/practical”>практическая часть этого модуля. Следующие примеры демонстрируют использование модуля Bitstring – Мы не можем добавлять на класс Bits, но мы можем использовать класс BitArray для того же самого. Модуль Python Bitstring позволил нам очень легко играть с битами и байтами (0 и 1). В модуле есть 4 класса и много методов. Пожалуйста, исследуйте и попробуйте изучить еще больше методов. Попробуйте запустить программы на вашей стороне и дайте нам знать, если у вас есть какие-либо вопросы. Счастливого кодирования!класс bitstring.BitArray([auto, length, offset, **kwargs]) Битовой строки python
битовая строка.ConstBitStream([auto, length, offset, **kwargs])
Возвращаемый Тип Python Bitstring-
Битовая строка.Битовый поток()
Реализация модуля Bitstring Python
a. Преобразование различных типов данных в битовую строку
from bitstring import Bits
#Converting a hexadecimal into bitstring(hex='0xff470001')
#Converting a octadecimal into bitstring(oct='0o4464')
#Converting a binary string into bitstring(bin='0b001010110101')
#Converting a integerl into bitstring(int=-1540,)
#Converting a unsigned integer into bitstring(uint=2300,)
#Converting a bytes into bitstring(bytes=b'\[email protected]',)
print(string1)
print(string2)
print(string3)
print(string4)
print(string5)
print(string6)
0xff470001
0x934
0x2b5
0x9fc
0x8fc
0x934
b. Как добавить в python bitstring
from bitstring import BitArray('0xbad')
# appending hexadecimal string at last
bas.append("0xff470001")
print(bas)
0xbadff470001
c. Выполнение Операции Нарезки
Original string: 0x1e
Sliced string: 0xf
d. Создание ConstBitStream и выполнение операции peek над ним
from bitstring import ConstBitStream('0xff47000')
s.peek('hex:12') # integer is 4 bytes
'ff4'
e. Чтение битовой строки
0x123
f. Работа с классом BitStream
from bitstring import BitStream(oct='0o4464')
string.append('0o4')
print(string)
0b100100110100100
Должен Читать:
Вывод