francois:subprocess
subprocess module
class WinConsole(Console): TYPE = 'term' def __init__(self, name, cwd=None, stream=sys.stdout): Console.__init__(self, name, stream) self.cwd=cwd def open(self): self.term = subprocess.Popen('cmd.exe', shell=False, stdin=subprocess.PIPE, stdout=subprocess.PIPE, universal_newlines=True, cwd=self.cwd) self.q = Queue() self.t = threading.Thread(target=enqueue_output, args=(self.term.stdout, self.q)) self.t.daemon = True # thread dies with the program self.t.start() def close(self): self.t = None self.q = None self.term.terminate() self.term = None def readchar(self, timeout): c = ''; try: c = self.q.get(timeout=timeout) except: pass return c def write(self, str): res = self.term.stdin.write(str) self.term.stdin.flush() return res
francois/subprocess.txt · Dernière modification : de 127.0.0.1
