2
有憐憫,我是初學者。Python,Tkinter,Subprocess-獲取標準輸出並將其插入到文本
我正在嘗試編寫一個非常基本的應用程序來運行'chkdsk c:'並逐行輸出到文本框。對於每一行我想要一個ttk.Progressbar移動一下。我在這裏看到類似的問題,但無法讓他們工作。我能走到今天:
from Tkinter import *
import ttk
from subprocess import Popen, PIPE
gui = Tk()
text = Text(gui)
lb = ttk.Label(text="Chkdsk")
prog = ttk.Progressbar(mode='indeterminate')
def chkdsk():
proc = Popen(['chkdsk','c:'],stdout=PIPE)
while True:
line = proc.stdout.readline()
if line != '':
text.insert(INSERT, "\n")
text.insert(END, line.rstrip())
prog.step(1)
gui.update()
else:
break
bt = ttk.Button(text="Chkdsk", command=chkdsk).grid(row=4, column=5)
text.grid(row=6, column= 5)
lb.grid(row=3, column=5)
prog.grid(row=7,column=5)
mainloop()
好了,當我運行上提升的命令提示符這.pyw腳本(這是對我的目的) - 「蟒蛇chkdsk.pyw」並啓動CHKDSK,它開始工作,然後不久就變得沒有響應。
我認爲這個問題與緩衝有關嗎?
[請參閱此評論中的鏈接](http://stackoverflow.com/questions/22627148/tkinter-subprocess-locking-gui-and-not-returning-stdout-to-text#comment34460372_22627148) – jfs 2014-10-09 22:55:23
@JFSebastian謝謝,我可以輕鬆地更改一行來完成這項工作。但我無法理解它的90%。 – Netanel 2014-10-10 16:51:48
如果您有關於代碼的具體問題; [問](http://stackoverflow.com/questions/ask) – jfs 2014-10-10 20:03:16