2011-08-11 23 views
10

Necesito ejecutar una aplicación (archivo binario) y pasar argumentos usando un código de Python. Algunos argumentos representan cadenas obtenidas durante el procesamiento del archivo Python.¿Cómo ejecutar la aplicación con parámetros en Python?

for i in range (len (files)) : 
    subprocess.call(["test.exe", files[i]]) //How to pass the argument files[i] 

Gracias ...

pregunta Actualizado:


Tal vez no comprenden el paso de argumentos en Python 3. Un código sin parámetros funciona bien

args = ['test. exe'] 
subprocess.call(args) 

Sin embargo, el código con el parámetro provoca un error:

args = ['test. exe'] 
subprocess.call(args, '-f') //Error 

error:

Error File "C:\Python32\lib\subprocess.py", line 467, in call 
return Popen(*popenargs, **kwargs).wait() 
File "C:\Python32\lib\subprocess.py", line 652, in __init__ 
raise TypeError("bufsize must be an integer") 
TypeError: bufsize must be an integer 

Respuesta

2

Todo lo que necesita hacer es incluirlo en la lista de argumentos, en lugar de como un argumento separado:

subprocess.call(["test.exe", files[i]]) 
3

Con respecto a su pregunta actualizado : Los argumentos para su subproceso no se pasan como parámetros individuales a call(); Más bien, son pasados ​​como una única lista de cadenas, así:

args = ["test.exe", "first_argument", "second_argument"] 

respuesta original: El código como lo tienes creará un proceso separado para cada elemento de archivos. Si eso es lo que quieres, tu código debería funcionar. Si desea llamar el programa con todos los archivos al mismo tiempo, tendrá que concatenar su lista:

args = ["test.exe"] + files 
subprocess.call(args) 
15
args = ['test. exe'] 
subprocess.call(args, '-f') //Error 

debería ser:

args = ['test.exe', '-f'] 
subprocess.call(args) 

El argumento de línea de comando debe ser todos dentro de una sola lista para el primer parámetro de subprocess.call. El segundo argumento para llamar es bufsize, que se supone que es un número entero (de ahí por qué obtienes el error)

Cuestiones relacionadas