Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

260
Vistas
Escriba y cierre el archivo antes del apagado inesperado del sistema en una Raspberry pi

Tengo un lector de tarjetas RFID rc522 conectado a mi Raspberry pi 3. He escrito un programa Python que escribe el número de tarjeta de la tarjeta registrada en un archivo. Eso está funcionando bien. También he creado un "servicio systemd" que inicia este programa de Python al iniciar el sistema. Eso también funciona bien. Escribe los números de tarjeta en el archivo. Pero solo después de que el sistema se apague normalmente. Cuando el sistema se apaga inesperadamente, los números de tarjeta no se escriben en el archivo. Puedo registrar tarjetas todo el día, pero cuando el sistema se apaga inesperadamente, todos los números de tarjeta que he registrado desaparecen. Esto sucede solo cuando el "servicio systemd" inicia el programa. Cuando inicio el programa yo mismo, escribe todo en el archivo inmediatamente. Ese también es el caso cuando el sistema se cierra de forma inesperada. Todos los números de tarjeta se han escrito en el archivo. Supongo que cuando el servicio systemd inicia el programa, los números de tarjeta registrados permanecen en la memoria hasta que el sistema se apaga normalmente. ¿Hay alguna manera de forzar la escritura en el archivo cuando lo inicia el servicio systemd y no se guarda en la memoria? También lo probé con un trabajo crontab pero tiene el mismo problema. El código para escribir en el archivo es:

 with open(path and filename, "a") as file: file.write(cardnumber)
over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

La respuesta a mi problema fue como dijo @stark. De hecho, tuve que vaciar () el archivo. Pero también tuve que agregar después de ese comando el comando "os.fsync()". Y ese último mandato es esencial. De lo contrario, la descarga no se activará. Esa respuesta que encontré en esta pregunta en Stackoverflow:¿con qué frecuencia se vacía Python en el archivo ? Ahora, cuando agrego un número de tarjeta e inmediatamente después, el sistema apaga inesperadamente ese número de tarjeta que se escribió en el archivo. Mi código ahora se ve así:

 with open('path and filename', 'a') as file: file.write('text\n') file.flush() os.fsync(file)
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda