Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

253
Vistas
Ejecutar archivo de script a través de subproceso

Estoy intentando ejecutar un script de Linux a través del módulo de subproceso de Python. A continuación se muestra el comando de subproceso:

 result = subprocess.run(['/dir/scripts/0_texts.sh'], shell=True) print(result)

Aquí está el archivo de script 0_texts.sh :

 cd /dir/TXTs pylanguagetool text_0.txt > comments_0.txt

El comando subprocess ejecuta el archivo de script, escribiendo un nuevo comments_0.txt en el directorio correcto. Sin embargo, hay un error en la ejecución. comments_0.txt contiene un error de "se requiere archivo de entrada", y el resultado del subproceso devuelve returncode=2 . Cuando ejecuto pylanguagetool text_0.txt > comments_0.txt directamente en la terminal, el comando se ejecuta correctamente, con comments_0.txt escrito con el archivo de entrada adecuado de text_0.txt .

¿Alguna sugerencia sobre lo que me estoy perdiendo?

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Existe cierta ambigüedad aquí, ya que no es obvio qué shell se ejecuta cada vez que se invoca 0_texts.sh , y si tiene los valores que espera de las variables de entorno como PATH , lo que podría resultar en una copia diferente de pylanguagetool ejecutándose desde cuando llama en la línea de comando.

Primero, sugeriría eliminar la opción shell=True en subprocess.run , que solo involucra otro shell potencialmente diferente aquí. A continuación, cambiaría subprocess.run(['/dir/scripts/0_texts.sh']) a subprocess.run(['bash', '/dir/scripts/0_texts.sh']) (o el shell que quisiera run, probablemente bash o dash ) para eliminar esa fuente de ambigüedad. Finalmente, puede intentar usar el type pylanguagetool en el script, invocar pylanguagetool con su ruta completa o llamar a bash /dir/scripts/0_texts.sh desde su terminal para depurar aún más la situación.

Un problema más amplio es que pyLanguageTool es una biblioteca de Python, por lo que es casi seguro que será mejor llamar a sus funciones directamente desde su secuencia de comandos de Python original en lugar de usar una secuencia de comandos de Shell como intermediario.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda