2017-09-26 70 views
1

在我的代碼中的某一點後,我的標準輸出重定向到一個文件:恢復std.out重定向它

sys.stdout = open(os.path.join(folder, file_env), 'w') 

後來,我想回到平常IPython的控制檯(我用的蟒蛇在Linux上)

但是,如果我這樣做

sys.stdout = sys.__stdout__ 

控制檯輸出顯示在外殼中所期望的Spyder從開始而不是在IPython的控制檯。 將其重定向到IPython控制檯的正確方法是什麼?

+0

這與ksh有什麼關係? (ksh知識如何幫助某人回答這個問題?) –

+0

你是對的我已經刪除了ksh標籤 – ErroriSalvo

回答

1

在IPython中; sys.stdoutsys.__stdout__

當你分配一個值sys.stdout一直留有以前的版本:

oldstd = sys.stdout 
sys.stdout = whatever 
... your code. 
sys.stdout = oldstd 

或者更好,使它上下文管理。