我正在ubuntu 12.10上快速创建一个Ubuntu应用程序。它是一个用于启动,停止和重新启动Apache2 Web服务器的简单GUI。
让我先给出我面临问题的部分代码 -
# handler for restart apache button
def on_button_restart_clicked(self, button):
self.label = self.builder.get_object("labelStatus")
self.label.set_text("Restarting web server apache2")
os.system("gksudo /etc/init.d/apache2 restart")
self.label.set_text("Web server apache2 Restarted")
单击该按钮后,将调用该方法,但标签未显示 - 重新启动Web服务器apache2 在终端中,此时的输出为 - *重新启动Web服务器apache2 [确定] ...等待,一旦重新启动apache,将显示下一行 - Web服务器apache2重新启动
我如何解决问题 -
我对python完全不熟悉。 提前致谢
答案 0 :(得分:0)
Stack的快速检查将我带到了这个链接;希望它有所帮助
Pipe subprocess standard output to a variable
我也挖了这个:
from StringIO import StringIO
import sys
# store a reference to the old
old_stdout = sys.stdout
# var to store everything that is sent to the std out
result = StringIO()
sys.stdout = result
# your function here; all results should be stored
user_def_function()
# reset the std out
sys.stdout = old_stdout
# result to string
result_string = result.getvalue()