Can test function.
# cm.py import subprocess def run_process(cmd_args): with subprocess.Popen(cmd_args, stdout=subprocess.PIPE, stderr=subprocess.PIPE) as p: out, err = p.communicate() return out
E:\div_code\new λ ptpython -i cm.py >>> res = run_process('ls') # Return bytes >>> res b'001.png\n002.png\n003.png\n004.png\ncm.py\n' # To string >>> res.decode() '001.png\n002.png\n003.png\n004.png\ncm.py\n' # Write to file >>> with open('output.txt', 'w') as f: ... f.write(f'Process Output: \n{res.decode()}\n')output.txt:
Output:Process Output:
001.png
002.png
003.png
004.png
cm.py
If return out, err
then it will be a tuple.>>> res (b'001.png\n002.png\n003.png\n004.png\ncm.py\noutput.txt\n', b'') >>> res[0] b'001.png\n002.png\n003.png\n004.png\ncm.py\noutput.txt\n' >>> res[0].decode() '001.png\n002.png\n003.png\n004.png\ncm.py\noutput.txt\n' # Or unpack back >>> out, err = res >>> out b'001.png\n002.png\n003.png\n004.png\ncm.py\noutput.txt\n'