2015-06-09 17 views
11

IPython Defter kullanan terminal penceresine yazdırmak ve hücre çıkışına yazdırmak istemiyorum. Hücre çıkışına yazdırmak, daha fazla bellek tüketir ve önemli sayıda print çağrı verdiğimde sistemimi yavaşlatır. Özünde, tasarımla this davranışını isterim.Konsol terminaline IPython Defter uygulamasının hücre çıkışına değil,

denedim aşağıdadır:

  1. Ben
  2. Ben yardım almadan ipython Notebook belgelerinde here, here ve here baktı
  3. kullanıyorum denedi farklı print PERMÜTASYON ve sys.stdout.write çağrıları çalıştı this bir geçici çözüm olarak görünüyor, ancak sadece çalışıyormuş gibi görünüyor Python 2.7

cevap

11

Çıktınızı sistem standart çıkış aygıtına yönlendirmelisiniz. Bu işletim sisteminize bağlıdır. Mac'te bu şu olurdu:

import sys 
sys.stdout = open('/dev/stdout', 'w') 
Yukarıdaki kodu bir IPython hücresine yazın ve değerlendirin. Daha sonra tüm çıkış terminalde görünecektir.

Windows'ta
+2

o tersine çevirmenin bir yolu var mı? ve ipython stdout –

+2

'u geri yükleyebilirsiniz. yönlendirmeden önce dizüstü bilgisayarın 'stdout'una güvenli bir şekilde başvurmak:' nb_stdout = sys.stdout'. Şimdi, çıktıyı yönlendirirsin. Defter çıkışına geri dönmek için basitçe yazınız: 'sys.stdout = nb_stdout'. Temiz bir çözüm [contextlib.redirect_stdout (new_target)] (https://docs.python.org/3.4/library/contextlib.html#contextlib.redirect_stdout) içerik yöneticisini kullanmak olacaktır. – MaxPowers

+1

@MaxPowers Windows'ta ne yazmanız gerektiğini biliyor musunuz? – Yaeli778

1

, bu çalışabilirsiniz:

import sys 
sys.stdout = open(1, 'w') 
+0

Hey, @MaxPowers'ın cevabını kopyalayıp gönderiyorsunuz – Dilip

İlgili konular