Estoy convirtiendo un archivo XLS 2 CSV con un comando del sistema en Ruby.Cómo esperar a que finalice el comando del sistema
Después de la conversión estoy procesando los archivos CSV, pero la conversión aún se está ejecutando cuando el programa desea procesar los archivos, por lo que en ese momento no existen.
¿Puede alguien decirme si es posible dejar que Ruby espere la cantidad de tiempo correcta para que termine el comando del sistema?
En este momento estoy usando:
sleep 20
pero si se tardará más de una vez, que no está bien, por supuesto.
Lo que hago en concreto es la siguiente:
#Call on the program to convert xls
command = "C:/Development/Tools/xls2csv/xls2csv.exe C:/TDLINK/file1.xls"
system(command)
do_stuff
def do_stuff
#This is where i use file1.csv, however, it isn't here yet
end
Por favor, muéstrenos un ejemplo de su código actual o explique la función. Hasta donde yo sé, las llamadas al sistema no solo se "descargan", así que estoy pensando que lo estás descargando de alguna manera. –
¿El comando del sistema devuelve éxito? Asigne el valor de retorno del sistema a una variable y luego verifique su contenido. El comando del sistema debe ejecutarse sincrónicamente. –
Cuando asigno el sistema (comando) a una variable, devuelve inmediatamente verdadero. Entonces eso tampoco es una opción – Ignace