Инструменты пользователя

Инструменты сайта


python:tools_python:small_tools:small_tools

Небольшие программы на Python

Небольшие программы на Python

Инструменты для работы с бинарными файлами

Скрипты работают в Python 2 и 3.

fragment-from-binary-file.py

fragment-from-binary-file.py

Чтение фрагмента файла нужной длины по смещению и запись его в отдельный файл:

Параметры:

  1. Исходный файл
  2. Файл для сохранения фрагмента
  3. Смещение в исходном файле (шестнадцатеричное)
  4. Длина (число байт)

Пример:

./fragment-from-binary-file.py file.bin fragment.bin DA5 288

fragment-to-binary-file.py

fragment-to-binary-file.py

Запись фрагмента в файл. Исходный файл открывается только на чтение, скрипт создаёт новый файл добавляя к имени исходного суффикс _new

Параметры:

  1. Исходный файл, в который записывается фрагмент
  2. Файл с фрагментом данных для вставки
  3. Смещение в исходном файле (шестнадцатеричное)
  4. Длина (число байт)

Пример:

./fragment-to-binary-file.py file.bin fragment.bin DA5 288

Скрипты для работы с RLE

RLE (run-length encoding) кодирование повторов — алгоритм сжатия данных, в котором последовательность нескольких одинаковых символов заменена на один символ и число его повторов.

Работают только в Python 3

bin-to-rle.py

bin-to-rle.py

Сжатие содержимого двоичного файла по алгоритму RLE

Параметры:

  1. Двоичный файл
  2. Сжатый файл (RLE)
  3. Режим (8 или 16 бит), по умолчанию (если не указано) 8 бит

Примеры:

./bin-to-rle.py test.bin test-8.rle
./bin-to-rle.py test.bin test-16.rle 16

rle-to-bin.py

rle-to-bin.py

Распаковка содержимого файла, сжатого по алгоритму RLE в двоичный файл

Параметры:

  1. Сжатый файл (RLE)
  2. Двоичный файл
  3. Режим (8 или 16 бит), по умолчанию (если не указано) 8 бит

Примеры:

./rle-to-bin.py test-8.rle test-8.bin
./rle-to-bin.py test-16.rle test-16.bin 16

Описание формата сжатого файла

Каждый символ записывается в виде последовательности из 2 или 3 байт, в зависимости от режима.

Режим 8 бит — 1 байт на количество:

БайтНазначение
1значение
2количество

Режим 16 бит — 2 байта на количество:

БайтНазначение
1значение
2,3количество

Тестовый файл: rle_test.bin

python/tools_python/small_tools/small_tools.txt · Последние изменения: 2023-10-01 19:00 — GreyWolf