script ejecutar desde consola archivos python bash arguments subprocess popen

desde - ejecutar script python en windows



Python: subproceso y ejecución de un script bash con múltiples argumentos (5)

¿Cómo hago para ejecutar un script bash utilizando el módulo de subproceso, al que debo dar varios argumentos?

Esto es lo que estoy usando actualmente:

subprocess.Popen([''/my/file/path/programname.sh'', ''arg1 arg2 %s'' % arg3], / shell = True)

El guión de bash parece no estar tomando ninguno de los parámetros. ¡Cualquier información es muy apreciada!


Hola, sé que esta solución es bastante tarde, pero podría ayudar a alguien.

ejemplo:

import subprocess pass_arg=[] pass_arg[0]="/home/test.sh" pass_arg[1]="arg1" pass_arg[2]="arg2" subprocess.check_call(pass_arg)

El ejemplo anterior proporciona arg1 y arg2 como parámetros al shell script test.sh

Esencialmente, el subproceso espera una matriz. Por lo tanto, podría rellenar una matriz y proporcionarla como un parámetro.


Pase los argumentos como una lista, vea el primer ejemplo de código en los documentos :

import subprocess subprocess.check_call([''/my/file/path/programname.sh'', ''arg1'', ''arg2'', arg3])

Si arg3 no es una cadena; check_call() en una cadena antes de pasar a check_call() : arg3 = str(arg3) .


Se te olvidó agregar el nombre de args .

subprocess.Popen(args=[''./test.sh'', ''arg1 arg2 %s'' % arg3], shell=True)


Un ejemplo más, que no está incluido en todos los anteriores,

subprocess.Popen([''/your/script.sh %s %s %s'' %(argument1,argument2,argument3)], shell = True)

Tenga en cuenta que, cuando escribe %(argument1,argument2,argument3) , no debe haber ningún espacio entre % y ( por ejemplo, % (argument1,argument2,argument3) no es válido.


subprocess.Popen([''/my/file/path/programname.sh arg1 arg2 %s'' % arg3], shell = True).

Si usa shell = True el script y sus argumentos deben pasarse como una cadena. Cualquier otro elemento en la secuencia de argumentos se tratará como argumentos al shell.

Puede encontrar los documentos completos en http://docs.python.org/2/library/subprocess.html#subprocess.Popen .