Cómo resolver "OSError: decir la posición deshabilitada por la próxima llamada ()"

Estoy creando un sistema de edición de archivos y me gustaría hacer una función tell () basada en líneas en lugar de una función basada en bytes. Esta función se usaría dentro de un "con bucle" con la llamada abierta (archivo). Esta función es parte de una clase que tiene:

self.f = open(self.file, 'a+')
# self.file is a string that has the filename in it

La siguiente es la función original (también tiene una configuración de caracteres si desea retorno de línea y byte):

def tell(self, char=False):
    t, lc = self.f.tell(), 0
    self.f.seek(0)
    for line in self.f:
        if t >= len(line):
            t -= len(line)
            lc += 1
        else:
            break
    if char:
        return lc, t
    return lc

El problema que tengo con esto es que esto devuelve un OSError y tiene que ver con cómo el sistema está iterando sobre el archivo, pero no entiendo el problema. Gracias a cualquiera que pueda ayudar.

Respuestas a la pregunta(3)

Su respuesta a la pregunta