将Stdout转换为String

时间:2015-11-02 02:00:11

标签: python stdout

我正在尝试将sys.stdout.write输出转换为打印后的字符串,以便我可以修改它并稍后再打印,但我遇到了问题。

到目前为止,这是我的代码:

import sys
import random

def write(s):
    sys.stdout.write(s)
    myOutput = sys.stdout(s)

i = random.randint(1,10)
write("\nMy number is "+str(i)+".")

不幸的是,这不起作用,它给了我以下错误:

TypeError. "'PseudoOutputFile' object is not callable"

我应该怎样做才能实现目标?

2 个答案:

答案 0 :(得分:2)

但是,你已经将它作为一个字符串。它只是s。所以替换:

myOutput = sys.stdout(s)

使用:

myOutput = s

另外,如果myOutput是全局的,那么你需要在函数内声明它:

global myOutput

答案 1 :(得分:1)

这是一个简单的例子:

import sys

def main ():
    i=1
    sys.stdout.write("Value is %s" % i)
main()