小编Duc*_*uck的帖子

8
推荐指数
2
解决办法
6999
查看次数

创建自定义sys.stdout类?

我想要做的只是让一些终端命令的输出打印到wx.TextCtrl小部件.我认为最简单的方法是创建一个自定义的stdout类,并将write函数重载为widget的.

stdout类:

class StdOut(sys.stdout):
    def __init__(self,txtctrl):
        sys.stdout.__init__(self)
        self.txtctrl = txtctrl

    def write(self,string):
        self.txtctrl.write(string)
Run Code Online (Sandbox Code Playgroud)

然后我会做以下事情:

sys.stdout = StdOut(createdTxtCtrl)    
subprocess.Popen('echo "Hello World!"',stdout=sys.stdout,shell=True)
Run Code Online (Sandbox Code Playgroud)

结果是以下错误:

Traceback (most recent call last):
File "mainwindow.py", line 12, in <module>
from systemconsole import SystemConsole
File "systemconsole.py", line 4, in <module>
class StdOut(sys.stdout):
TypeError: Error when calling the metaclass bases
file() argument 2 must be string, not tuple
Run Code Online (Sandbox Code Playgroud)

任何解决这个问题的想法都将受到赞赏.

python stdout

6
推荐指数
1
解决办法
4984
查看次数

Python:更改类类型名称

如何将类类型名称更改为classobj以外的其他名称?

class bob():
    pass

foo = bob
print "%s" % type(foo).__name__
Run Code Online (Sandbox Code Playgroud)

这让我'classobj'.

python

0
推荐指数
2
解决办法
7151
查看次数

标签 统计

python ×3

compression ×1

extraction ×1

performance ×1

stdout ×1

zip ×1