我正在尝试在打印后将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"


我应该怎么做才能实现自己的目标?

最佳答案

但是,您已经将它作为字符串使用。只是s。因此,请替换:

myOutput = sys.stdout(s)


与:

myOutput = s


另外,如果myOutput打算是全局的,那么您将需要在函数内部将其声明为:

global myOutput

关于python - 将标准输出转换为字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33469624/

10-09 08:51