Uma diferença entre os dois está documentada ( aqui )
os.system(command)
Execute the command (a string) in a subshell.
Embora subprocess.call()
se pareça com:
subprocess.call(args, *, stdin=None, stdout=None, stderr=None, shell=False)
Run the command described by args. Wait for command to complete, then return the returncode attribute.
Para que subprocess.call()
se comporte como os.system()
, é necessário passar shell=True
. Então, algo como:
from subprocess import call
call('/usr/lib/mailman/bin/find_member -w user_email', shell=True)