Tu problema esta en el w+ que borra todo el contenido ocupa r+
w+ = Modo de escritura/lectura. Si el fichero no existe, se crea, y, si existiese, se borra todo su contenido, se sitúa el cursor al principio del fichero permitiéndonos escribir y leer.
r+ = Modo de lectura/escritura. Se abre el fichero y el cursor se coloca al principio del mismo,permitiendo leer o escribir en el fichero.
intenta asi