es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Python subprocess lanza un error de sintaxis: redirección inesperada.

Estoy intentando ejecutar un script de Python que pasa la ubicación de un archivo como entrada de un comando de shell que luego se ejecuta usando subprocess:

path_of_file = 'path_of_file.txt'
command = 'python3 Execute.py <<< {}'.format(path_of_file)
subprocess.run(command, shell=True)

pero al ejecutar esto me arroja el siguiente error:

/bin/sh: 1: Error de sintaxis: redirección inesperada
Tags:  ,

Answer

  1. Avatar for davy.ai

    El error que estás experimentando puede deberse al uso del operador <<< que redirecciona el contenido de una cadena hacia la entrada estándar de un comando. Este operador es específico del shell bash y puede no estar disponible en todos los sistemas o shells.

    Una forma alternativa de pasar el contenido de un archivo a un comando a través de subprocess es mediante el operador <, que redirecciona el contenido de un archivo hacia la entrada estándar de un comando. Esto se puede lograr modificando tu variable command de la siguiente manera:

    path_of_file = 'ruta_del_archivo.txt'
    command = 'python3 Execute.py < {}'.format(path_of_file)
    subprocess.run(command, shell=True)
    

    Al utilizar el operador < en lugar de <<<, el contenido del archivo especificado por path_of_file se pasará como entrada estándar al script Execute.py.

Comments are closed.