我正在同时学习 python 和 wxPython... :) 所以,我有一组可以从命令行正常运行的 python 文件:./scan -d test ~/Pictures
——例如,将创建一个名为“test”的图片数据库。
我一直在为此努力工作(我没有编写原始的命令行 python 文件),我可以使用以下命令运行它:
def bt_ScanUpdateClick(self, event):
self.SetSizeWH(450,360)
## DEBUG
self.tc_MainDatabase.Value = "test.db"
if self.tc_MainDatabase.Value == "":
self.LogWindow.Value += "ERROR:\tNo database name selected!\n"
else:
scanCMD = "./scan -d " + self.tc_MainDatabase.Value + " "
numLines=0
maxLines=(int(self.multiText.GetNumberOfLines()))
if self.multiText.GetLineText(numLines) == "":
self.LogWindow.Value += "ERROR\tNo folder selected to scan!\n"
else:
self.LogWindow.Value += "Running Scan...\n\n"
while (numLines < maxLines):
scanCMD += str(self.multiText.GetLineText(numLines)) + " "
numLines += 1
self.LogWindow.Value += scanCMD
p = subprocess.Popen([scanCMD],shell=True,stdout=subprocess.PIPE,stdin=subprocess.PIPE)
self.LogWindow.Value += p.communicate()[0]
这给我带来了一个问题:
- 一旦我单击 Button 来激活它,它实际上甚至没有到达函数的 self.SetSizeWH(450,360) 部分。它只是停留在“关闭”状态。命令完成后,应用程序恢复生机,输出窗口(self.LogView)中的所有内容都已经恢复了......我想以更“实时”的方式获得输出......可能吗?
有什么想法吗?