Realiza comprobaciones frecuentes en un archivo mientras se está escribiendo en él un subproceso
Tengo el siguiente fragmento de código donde el ejecutable de c++ (run.out
) imprime una gran cantidad de información en tiempo de ejecución utilizando std::cout
. Este código almacena las salidas de run.out
en el archivo storage.txt
.
storage = open("storage.txt", "w")
shell_cmd = "run.out"
proc = subprocess.Popen([shell_cmd], stdout=storage, stderr=storage)
Una vez que comienza el subprocess
, necesito verificar con frecuencia el contenido de storage.txt
y decidir en función de lo que acaba de almacenarse allí. ¿Cómo puedo hacer eso?
davy.ai
Puedes leer el contenido de
storage.txt
utilizando la funciónopen
con el modor
, y luego puedes utilizar la funciónread()
oreadlines()
para obtener el contenido del archivo. Aquí tienes un ejemplo de código:Este código lee el contenido del archivo
storage.txt
de forma continua y verifica cada línea del archivo una por una. Puedes adaptar el código dentro del buclefor
según tus necesidades. La instruccióntime.sleep(1)
pausa la ejecución del código durante 1 segundo antes de verificar nuevamente. Puedes ajustar el tiempo de espera según sea necesario.