def executeAsync(self, command, *args): # process.stdin, .stdout, stderr #Note: remember to flush() # .stdin.write(data) .stdin.flush() # .stdout.read([amount]), .stdout.readline() # .poll() -> None (still processing) or returncode (int) # .kill() # .communicate(input) -> (stdoutData, stderrData) Note: waits until the process has finished # Also closes input and output streams # .returncode # -ADDED- # .close() To close all input and output streams # .processing() -> True while still processing args.insert(0, command) process = Popen(args=args, executable=command, stdin=PIPE, stdout=PIPE, stderr=PIPE) def close(): process.stdoutData, process.stderrData = process.communicate() process.close = close def processing(): return process.poll() == None process.processing = processing def write(data): process.stdin.write(data) return process
def executeAsync(self, command, *args): # process.stdin, .stdout, stderr #Note: remember to flush() # .stdin.write(data) .stdin.flush() # .stdout.read([amount]), .stdout.readline() # .poll() -> None (still processing) or returncode (int) # .kill() # .communicate(input) -> (stdoutData, stderrData) Note: waits until the process has finished # Also closes input and output streams # .returncode # -ADDED- # .close() To close all input and output streams # .processing() -> True while still processing args.insert(0, command) process = Popen(args=args, executable=command, stdin=PIPE, stdout=PIPE, stderr=PIPE) def close(): process.stdoutData, process.stderrData = process.communicate() process.close = close def processing(): return process.poll()==None process.processing = processing def write(data): process.stdin.write(data) return process