Я хочу подсчитать вхождения определенного раздела заголовка в двоичном файле с Python 2.7.3. Я нашел множество примеров для подсчета вхождений в файлах типа .txt и для строк, но мало информации о подсчете байтовых последовательностей в двоичных файлах.количество вхождений в двоичном файле Python 2X
Мысли, вы должны использовать символы ASCII в двоичном формате, чтобы использовать строку для поиска.
Секция заголовка в шестнадцатеричном виде равна "28 00 28 00 28 00"
или "((("
в ascii.
Я думал, что код будет выглядеть примерно так:
total = 0
for line in f:
if "(((" in line:
total += 1
f.close()
print "%s" % total
Но это даже не кажется, сосчитать один раз, он будет печатать строку и длиной 120 символов.
Спасибо за то, новобранец ошибки, с обновленной IF заявление общее количество по-прежнему 0. Would байт лучше, чем использовать, чем " строк "в заявлении FOR? –
@Python_newbie: так вы на 100% уверены, что эти байтовые последовательности есть? Для двоичных файлов я читал куски (и беру последние 5 байтов из предыдущего фрагмента для следующего теста, чтобы убедиться, что вы не пропустили частичное совпадение). –
Да, конечно, я могу найти каждый экземпляр заголовка в критерии поиска «Найти выбор» в Hex Editor. Есть угадай 1000 х 3 разных типа заголовков, поэтому я хочу, чтобы скрипт подсчитывал и печатал подтвержденную сумму. Чтение в кусках не будет работать, поскольку метаданные могут различаться по длине, поэтому поиск последовательности байтов заголовка является лучшим вариантом afaik. –