I use subprocess.Popen a lot to run shell commands from Python. There is no 
need for a specific web2py feature.

This is the method I use whenever I need to call something:

    import subprocess
    def run_command(self, *args):
        """
        Returns the output of a command as a tuple (output, error).
        """
        p = subprocess.Popen(args, stdout=subprocess.PIPE, 
stderr=subprocess.PIPE)
        return p.communicate()

It's very simple to use:

output, error = run_command('python', 'my_script.py', 'arg1', 'arg2', ...)

This runs the command, waits for it to exit, and then you have a string 
"output" for the output from the command, and a string "error" for any 
error output from the command.

Reply via email to