2012-04-04 91 views
1

我經常使用myFile.write("..."),有時我想在控制檯中看到輸出,而不是重新打開更新的文件。我正在使用IDLE。是否有文件名或句柄寫入控制檯?

所以,我想知道的,而不是去與print()更換myFile.write()無處不在,我可以像STDIO替換文件名(output.txt)設置MYFILE變量時?

myFile = open("output.txt", "w") 

回答

6

可以使用sys模塊...

import sys 
myFile=sys.stdout 
myFile.write("Hello!\n") 

sys.stderr也可用。

+0

正是我需要的,謝謝你的片段:)將接受它什麼時候讓我。 – 2012-04-04 00:31:11

+0

沒問題。樂於幫助。 – mgilson 2012-04-04 00:32:33

0

這裏你去:sys.stdout。只要像使用其他文件句柄一樣使用它。例如。

print >> sys.stderr, "Hi! I'm an error!" 
+2

或python 3 ...'print(「嗨!我是個錯誤!」,file = sys.stderr)' – mgilson 2012-04-04 02:16:51

+0

@mgilson:不過,2.x在生產環境中仍然很普遍。其實我並不太喜歡這兩種語法,但如果被迫選擇,我寧願讓文件首先寫入指定位置。番茄/ Tomahto。 – 2012-04-04 04:56:53

+0

你不能寫入'stdin'。修正了這個問題。 ;) – 2012-04-28 22:39:20