2011-05-07 19 views

Respuesta

8

El módulo de subprocess se puede utilizar para este propósito:

import subprocess 
retcode = subprocess.call(["at", "x", "y", "z"]) 

Reemplazar x, y y z con los parámetros a at.

4

Alternativamente, en lugar de utilizar subprocess.call(), puede usar Popen para capturar la salida del comando (en lugar del código de retorno).

import subprocess 
process = subprocess.Popen(['at','x','y','z'], stdout=subprocess.PIPE).communicate()[0] 

Esto puede no ser relevante para el comando at, pero es útil saberlo. Lo mismo se puede hacer con stdin y stderr. Mira el documentation para más detalles.

1

subprocess.check_output parece ser la función de conveniencia canónica en Python 2.4+ para ejecutar un comando e inspeccionar la salida. También genera un error si el comando devuelve un valor distinto de cero (que indica un error).

Me gusta subprocess.call, check_output es una envoltura de conveniencia alrededor de subprocess.Popen, por lo que es posible que prefiera usar Popen directamente. Pero los envoltorios de conveniencia son ... convenientes, en teoría.

Cuestiones relacionadas