Advertisement
Guest User

Untitled

a guest
Sep 26th, 2016
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.89 KB | None | 0 0
  1. `enter code here` from threading import Thread
  2. from queue import Queue, Empty
  3.  
  4. def readlines(process, queue):
  5. while process.poll() is None:
  6. queue.put(process.stdout.readline())
  7.  
  8. def startProcess(self):
  9. self.process = subprocess.Popen(['./subtest.sh'],
  10. stdout=subprocess.PIPE,
  11. stdin=subprocess.PIPE,
  12. stderr=subprocess.PIPE)
  13.  
  14. self.queue = Queue()
  15. self.thread = Thread(target=readlines, args=(self.process, self.queue))
  16. self.thread.start()
  17.  
  18. self.after(100, self.updateLines)
  19.  
  20. def updateLines(self):
  21. try:
  22. line = self.queue.get(False) # False for non-blocking, raises Empty if empty
  23. self.console.config(state=tkinter.NORMAL)
  24. self.console.insert(tkinter.END, line)
  25. self.console.config(state=tkinter.DISABLED)
  26. except Empty:
  27. pass
  28.  
  29. if self.process.poll() is None:
  30. self.after(100, self.updateLines)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement