Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

252
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda