2015-11-02 48 views
1

我試圖在打印後將sys.stdout.write輸出轉換爲字符串,以便我可以對其進行修改並稍後再打印,但我遇到了問題。將Stdout轉換爲字符串

這裏是我到目前爲止的代碼:

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" 

我應該做什麼來實現我的目標?

+0

爲什麼不'myOutput = s'? –

回答

2

但是,你已經把它作爲一個字符串。這只是s。所以更換:

myOutput = sys.stdout(s) 

有:

myOutput = s 

而且,如果MyOutput中旨在成爲全球性的,那麼你就需要聲明它的函數內部爲:

global myOutput 
+0

如果我沒有使用sys.stdout.write,我不認爲格式化會保持不變,非常感謝您的快速回答!沒有看到這樣一個明顯的解決方案,我覺得有點愚蠢,哈哈。 – SomeGuy

1

這裏一個簡單的例子:

import sys 

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