To call other programs from a Python script >>> import subprocess simple use: same as one would do on the system command line, shell needs to be activated (not recommended) >>> subprocess.call('ls -l',shell=True) 0 drwxrwsr-x 1 user group 0 Nov 27 18:44 . 4 drwxrwsr-x 1 user group 88 Nov 27 18:44 .. better: command arguments as list which are passed directly to the program without using the system shell >>> subprocess.call(['ls', '-l']) 0 drwxrwsr-x 1 user group 0 Nov 27 18:44 . 4 drwxrwsr-x 1 user group 88 Nov 27 18:44 .. >>> cmd=['ls', '-l'] # decode: python3 'bytes' into string>>> print(output) 0 drwxrwsr-x 1 user group 0 Nov 27 18:44 . 4 drwxrwsr-x 1 user group 88 Nov 27 18:44 .. capturing both output and command's error-messge (when running in a python script) try: output=subprocess.check_output('ls -l; ls x', \ except subprocess.CalledProcessError as e: output = e.output.decode('utf-8') # stdout and stderr # print(e.cmd) # print(e.returncode) print(output) 0 drwxrwsr-x 1 user group 0 Nov 27 18:44 . 4 drwxrwsr-x 1 user group 88 Nov 27 18:44 .. ls: cannot access x: No such file or directory try: cmd='ls x' output = check_output(cmd,stderr=
except CalledProcessError as e: print('ERROR:',e.returncode, e.output) else: print(output) https://docs.python.org/3.4/library/subprocess.html |
System >