Re[8]: ChatGpt o1-preview - проверка на эрудицию
От: Shmj Ниоткуда  
Дата: 18.09.24 11:31
Оценка: -1
Здравствуйте, inoremap, Вы писали:

I>Полгода назад понадобился способ поиска последовательности байт в потоке на python, без считывания всех данных потока в память, гугл нашел вариант https://stackoverflow.com/questions/73841021/find-a-pattern-in-a-stream-of-bytes-read-in-blocks который мне не подошел, сейчас уже не вспомню по какой причине, все генераторы кода, что я попробовал, выдавали нерабочие варианты, иногда состоящие из частей кода ответа на stackoverflow.


Типа такого:

def find_sequence_in_stream(stream, sequence, buffer_size=4096):
    # Буфер для хранения части потока, которая может содержать начало искомой последовательности
    buffer = b''

    while True:
        # Читаем данные из потока
        data = stream.read(buffer_size)
        if not data:
            # Если поток закончился, выходим
            break

        # Объединяем предыдущие данные с новыми
        data = buffer + data

        # Пытаемся найти последовательность
        index = data.find(sequence)
        if index != -1:
            # Если последовательность найдена, возвращаем её позицию
            return index

        # Оставляем в буфере последние байты на случай, если последовательность пересекает границу порций
        buffer = data[-len(sequence) + 1:]

    # Если последовательность не найдена, возвращаем -1
    return -1
=сначала спроси у GPT=
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.