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.

subprocess.run() no devuelve la salida esperada

Estoy intentando ejecutar un script de shell en python pero no obtengo el resultado esperado.

script.sh

#!/bin/bash
file1=$1
file2=$2
cat $file1 $file2

python:

print(sp.run("/ruta/script.sh + " text1.txt text2.txt"", shell=True, check=True, text=True, capture_output=True))

Si ejecuto el script en la terminal, los resultados son correctos, se unen los dos archivos.
Pero si ejecuto el código de python, parece no hacer nada.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Puede haber varias razones por las cuales el script de Python no está produciendo el resultado esperado. Una posibilidad es que la ruta al script sea incorrecta o que el archivo del script de shell no sea ejecutable. Otra posibilidad es que pueda haber un error en la forma en que se están pasando los argumentos al script de shell.

    Para solucionar este problema, puedes probar lo siguiente:

    1. Asegúrate de que la ruta al script de shell sea correcta y que el archivo tenga los permisos necesarios para ser ejecutado. Puedes verificar los permisos del archivo utilizando el comando ls -l.
    2. Verifica si el script de shell está funcionando como se espera ejecutándolo directamente en la terminal con los argumentos correctos.

    3. Verifica nuevamente la forma en que se están pasando los argumentos al script de shell en el código de Python. Puedes imprimir los argumentos para verificar que sean correctos y se estén pasando en el formato esperado.

    4. Utiliza el método subprocess.check_call en lugar de subprocess.run para ver si hay algún error generado por el script de shell.

    En general, puede haber muchas razones por las cuales el script no funciona como se espera en Python. Es importante revisar cuidadosamente el código y considerar todas las posibles fuentes de error antes de realizar cambios o buscar ayuda adicional.

Comments are closed.