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
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 shellbash
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 variablecommand
de la siguiente manera:Al utilizar el operador
<
en lugar de<<<
, el contenido del archivo especificado porpath_of_file
se pasará como entrada estándar al scriptExecute.py
.