2016-09-07 81 views

回答

1

我沒有2.2的版本檢查(爲什麼你使用這樣一箇舊版本?),但我懷疑以下是有效的所有2.x.


print聲明承認與>>開始指示寫入該文件中的第一個參數。

以下是相同的:

print "foo", "bar" 
print >>sys.stdout, "foo", "bar" 

這樣,可以指定任何file對象作爲目標文件。

f = open("log.txt", "w") 
print >>f, "foo", "bar" 

如果你想重定向print語句(或至少所有未使用特定的文件如上圖所示的),你可以簡單地替換sys.stdout你想要的文件。

sys.stdout = open("log.txt", "w") 
print "foo", "bar" # Goes to log.txt 

如果您需要它,原始標準輸出仍可通過sys.__stdout__獲得。

+0

非常感謝,好像我可以使用它!但目標不是重定向到文件,而是重定向到記錄器。我怎樣才能實現一個像對象一樣的文件可以做到這一點?順便說一下,我使用的是超級老版本的python,因爲我正在編寫必須使用wlst執行的腳本(WebLogic Language Scripting Tool) – Abbadon

+0

有兩種選擇是使用'logging'模塊而不是'print'語句,或者使用'subprocess'打開一個管道到與記錄器一起工作的外部命令。 (假設在2.2中可用)。 – chepner

+0

問題是我無法訪問打印語句!我無法修改代碼。我打電話使用打印語句的現有功能。 – Abbadon