2016-05-11 305 views
15

在我的筆記本中,我有一個單元格返回溫度計算結果。它有點長,所以在運行後,我想隱藏它並在需要時顯示它。Jupyter筆記本:命令隱藏單元格的輸出?

做手工,我可以雙擊輸出的左側,則隱藏

enter image description here

雙擊 enter image description here

之後,但有什麼辦法,我可以做到這一點通過代碼?例如,

單元格的最後一行,使用類似於%%hide output的命令,輸出在完成運行後將被隱藏。

此外,我可以在輸出HTML中獲得此功能嗎?

+0

從筆記本中的代碼控制它的唯一方法是生成具有隱藏/顯示按鈕的自定義HTML輸出。 –

+0

@ThomasK,所以我不能'自動'通過輸出來隱藏輸出? – cqcn1991

+0

你可能實際上能夠'顯示'一些被執行並執行它的Javascript,但這有點駭人聽聞。我不知道JS的調用會是什麼。 –

回答

19

在單元格末尾加上;以隱藏該單元格的輸出。

+0

我可能不清楚。我想隱藏,但稍後可以顯示,如果我打開一個按鈕或類似的東西。 – cqcn1991

+0

不,只消除了顯示單元格的最新輸出。例如:print 3; – ntg

-1

如果您不介意有點黑客攻擊,那麼您可以編寫一個簡單的腳本,將筆記本的.ipynb文件(這是一個簡單的JSON文件)中每個單元格的「摺疊」屬性從false變爲真 。 。 但是,如果.ipynb格式發生變化,將來可能會失敗。

0

基於this,我只是想出了這個給自己幾分鐘前:

%%javascript 

$('#maintoolbar-container').children('#toggleButton').remove() 

var toggle_button = ("<button id='toggleButton' type='button'>Show Code</button>"); 
$('#maintoolbar-container').append(toggle_button); 

var code_shown = false; 

function code_toggle() 
{ 

    if (code_shown) 
    { 
     console.log("code shown") 
     $('div.input').hide('500'); 
     $('#toggleButton').text('Show Code'); 
    } 
    else 
    { 
     console.log("code not shown") 
     $('div.input').show('500'); 
     $('#toggleButton').text('Hide Code'); 
    } 

    code_shown = !code_shown; 
} 

$(document).ready(function() 
{ 
    code_shown=false; 
    $('div.input').hide(); 
}); 

$('#toggleButton').on('click', code_toggle); 

它有一個小故障:每次運行該單元格(我把在頂部),它添加一個按鈕。所以,這是需要解決的問題。需要檢查maintoolbar-container以查看按鈕是否已經存在,然後不添加它。

EDIT

我添加的代碼的必要片:

$('#maintoolbar-container').children('#toggleButton').remove() 
+0

它隱藏代碼不輸出。 – vesszabo

8

在較新版本(5.0.0當時我在寫這),按在 'O'命令模式隱藏單元格的輸出焦點。如果您在輸出前點擊三次,也會發生同樣的情況。

相關問題