Я проектирую демона, который будет непрерывно читать строки из одного текстового файла и обрабатывать эти строки. Каков хороший общий способ отслеживания последней обработанной строки, независимо от имени файла, в случае записи строк в текстовый файл, пока демон не запущен?Лучший способ отслеживания последней строки, прочитанной в текстовом файле
Каждый раз файл архивируется, и вместо него создается новый пустой файл. Демон будет остановлен для архивации.
Моей первой идеей, которая кажется сложной, является вычисление и сохранение номера хэша и номера последней успешно обработанной записи. Затем, когда демон запускается снова, запустите этот номер строки и вычислите хеш. Если хеш совпадает, продолжайте обработку следующей записи. Если хеш не соответствует, начните сначала в файле в начале, так как это скажет, что это новый файл.
У меня возникло ощущение, что в анализаторе журналов или что-то в текстовом редакторе есть хорошая техника общего назначения, в которой у меня не было воздействия.
Не могу поверить, что я думал о хэшировании, прежде чем просто хранить линию. Так просто. Тем не менее, мне интересна идея contextmanager. Что конкретно должен был использовать менеджер контекста? Я пока еще не использовал один из них. – Jeremy
Я добавил некоторый пример кода, однако я не очень люблю свое решение. Надеюсь, вы все равно найдете интересный пример contextmanager. –