¿Cómo puedo retrasar la ejecución hasta que termine os.system?

Estoy utilizando os.system para copiar un archivo de un sistema a otro. La lógica de un progtwig muy simple es ejecutar otro conjunto de comandos después de que se copie este archivo.

El problema es que os.system no espera realmente a que se copie el archivo, y se ejecuta la siguiente línea. Esto causa problemas al sistema. De hecho, podría dar algunas funciones de espera a través de time.sleep() , pero tenemos que copiar archivos con tamaños que van desde 500 MB hasta 20 GB, y los tiempos son muy diferentes.

¿Cual es la solución? Necesito decirle a mi progtwig que los archivos están copiados y luego ejecutar la siguiente línea.

Lo primero que intentaría es usar shutil.copyfile() lugar de un progtwig externo para copiar el archivo. Si tiene que usar un progtwig externo, debe llamarlo a través de subprocess.Popen() , no a través de os.system() . Puede usar Popen.wait() para esperar a que finalice el subproceso.

Creo que deberías usar shutil.copyfile en lugar de os.system para copiar un archivo.

(Edit: woops, copiar, no mover)

Usa el módulo de shutil para copiar archivos.

El módulo shutil ofrece una serie de operaciones de alto nivel en archivos y colecciones de archivos. En particular, se proporcionan funciones que admiten la copia y eliminación de archivos.

también, use el módulo de subproceso en lugar de os.system ()

El módulo de subproceso le permite generar nuevos procesos, conectarse a sus canales de entrada / salida / error y obtener sus códigos de retorno. Este módulo pretende reemplazar varios módulos y funciones más antiguos, como:

os.system

para obtener una mejor respuesta, debe proporcionar más detalles sobre lo que está tratando de hacer exactamente y cómo (programáticamente) está bloqueado.