Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 12, 2011 11:33:57

Danfocus
От:
Зарегистрирован: 2010-02-11
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Поиск bytes в bytes

Уважаемые знатоки питона.
Пытаюсь найти bytes в bytes через bisect, однако не работает.


from bisect import bisect_left
def main():

fdump = open('test.bin','rb')
dump = fdump.read(100) # размер файла 100 байт
fdump.close()

stroka = 'Строка в cp1251'
brow = bytes(stroka, 'cp1251')
pos = bisect_left(dump, brow) # Здесь вываливается ошибка TypeError: unorderable types: int() < bytes()
if (pos != hi and a[pos] == x):
print("OK")
else:
print("FAIL")

if __name__ == '__main__':
main()
Если вместо
pos = bisect_left(dump, brow)
if (pos != hi and a[pos] == x):
сделать просто if brow in dump:, то все нормально отрабатывает. Но мне нужно спозиционироваться на найденом вхождении.

Питон 3.2.1(Win)



Офлайн

#2 Авг. 12, 2011 12:48:30

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

Поиск bytes в bytes

Чем не подходит стандартный поиск?

>>> data = b'000000012300000'
>>> s = b'123'
>>> data.find(s)
7

Офлайн

#3 Авг. 12, 2011 12:52:19

Danfocus
От:
Зарегистрирован: 2010-02-11
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Поиск bytes в bytes

o7412369815963
Простого то и не заметил ))
Спасибо, а то я уже циклы с переборами наваял ))



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version