How To/python/

osSystemRedirStdout

Funkcja wykonuje podany plik i przechwytuje standardowe wyjście. Przechwycone
standardowe wyjście jest zwracane jako str. Dodatkowo jeśli printable
jest równe True to funkcja dodatkowo wyświetli przechwycone standardowe
wyjście.

Pierwszym parametrem funckji musi być plik - nie może być to nazwa polecenia
w windows (jak np. dir). Jesli chcesz użyć windowsowej komendy to stwórz
najpierw plik .bat, który będzie wykonywał tą komendę, a następnie jako
parametr funckji podaj nazwę pliku.

import sys
import subprocess
 
cmd = "file.bat"
 
def osSystemRedirStdout(scriptfile, printable=True):
    process = subprocess.Popen(scriptfile, stdout=subprocess.PIPE)
    out = ''
    while True:
        ch = process.stdout.readline(1)
        if ch == '' and process.poll() != None:
            break
        out += ch
        if printable:
            sys.stdout.write(ch)
            sys.stdout.flush()
    return out
 
print osSystemRedirStdout(cmd)