Используйте
logging
с ограничением размера лога параметром
maxBytes
, чтобы не изобретать велосипед.
я включаю символ "\n" в функции get_nmea_datetime
Где?
Вы накапливаете данные в data, при появлении перевода строки записываете их. Но не добавляете '\n'.
Ну и, вероятно, могут не выполняться условия выше
data=''
и оно может не обнуляться.
З.Ы. ну и в целом: работайте с файлами через контекстный менеджер
with
, добавьте логирование и обработку исключений (для себя прежде всего), аннотации и комментарии к коду (для других), тем более, если он будет опубликован.