使用wxpython将终端输出传递给GUI

时间:2013-05-11 06:42:58

标签: python redirect python-2.7 wxpython

大家好我在linux环境下使用python 2.7和GUI wxpython。我想将输出从终端重定向到消息框,它将如何发生? 我的代码是:

 p = subprocess.call(" grep "Wanted" .filename | awk '{print $2}' | cut -c11-20", shell=True)

这将在终端中提供正确的输出,但是当我在消息框中调用它时,它显示“0”。

 wx.MessageBox(" file name:'%s' % (str(p)), "info")

如何打印终端中显示的那些,我是python世界的新手,并且在python中知识较少。搜索了答案,但无法回答。所以请到这里寻求解决方案和指导。 提前致谢

1 个答案:

答案 0 :(得分:0)

可能更喜欢/更简单地使用Popen(但我很少使用subprocess.call,所以我不知道)。但是你的例子应该可以正常工作(使用Ashwini Chaudhary提到的修复),从我看到的。

import subprocess
import wx

def main():
    p = subprocess.Popen(['ls', '-a'], stdout = subprocess.PIPE)
    text = p.stdout.readlines()
    text = "".join(text)

    wx.MessageBox("file names:\n%s" % text, "info")

if __name__ == '__main__':
    app = wx.PySimpleApp()
    main()

无论如何:任何涉及Bash的理由,cant python也一样吗?