在ipython笔记本中自动向下滚动到结果的底部

时间:2017-01-09 01:40:43

标签: python ipython ipython-notebook

有没有办法配置ipython笔记本,这样每当我打印一个长列表时,我会自动看到底部?

例如,在终端中,如果我运行以下内容:

for i in range(1000):
  print i

它会自动滚动到底部:

992
993
994
995
996
997
998
999

In [2]: 

但在Python笔记本中,我看到了开头,我必须手动向下滚动到最后一个数字。

我正在运行一个长循环,每次迭代都需要几秒钟,每当我想检查程序的距离时,不得不向下滚动,

谢谢,

4 个答案:

答案 0 :(得分:1)

老问题,但 Jupyter Notebook 中有一个扩展名为 ScrollDown

<块引用>

启用后,此 nbextension 会在放大时自动向下滚动单元格的输出。可以使用工具栏按钮启用和禁用它

答案 1 :(得分:0)

我不认为有一种方法可以使用iPython,但是,如果你使用Pandas,你可以使用tail功能只打印最后的记录。

您甚至可以从Python本机元组将数据导入Pandas:

import pandas as pd
df = pd.DataFrame.from_records(list(range(1000), columns = (id,))

如果您不想使用Pandas,,您可以将所有项目收集到列表中,然后只打印最后10条记录:

print(list(range(1000))[-10])

答案 2 :(得分:0)

我使用jupyter-notebook很多并且不喜欢它没有自动滚动到底部,所以我使用的是 progressbar2 ,然后你可以做类似的事情:

import progressbar
with progressbar.ProgressBar(max_value=1000) as bar:
    for idx, val in enumerate(range(1000)):
        bar.update(idx)

然后你会看到一行输出有更多有用信息,如完成百分比,已用时间,ETA,::

100% (1000 of 1000) |####################| Elapsed Time: 0:00:00 Time:  0:00:00

答案 3 :(得分:0)

(一旦采取一切措施!)
将以下代码复制并粘贴到任何单元格(或控制台,F12)中,然后运行它。
执行后,您可以删除单元格,然后继续您的工作!

%%javascript

window.scroll_flag = true
window.scroll_exit = false
window.scroll_delay = 100

$(".output_scroll").each(function() {
    $(this)[0].scrollTop = $(this)[0].scrollHeight;
});

function callScrollToBottom() {
    setTimeout(scrollToBottom, window.scroll_delay);
}

function scrollToBottom() {
    if (window.scroll_exit) {
        return;
    }
    if (!window.scroll_flag) {
        callScrollToBottom();
        return;
    };

    $(".output_scroll").each(function() {
        if (!$(this).attr('scroll_checkbox')){
            window.scroll_flag = true;
            $(this).attr('scroll_checkbox',true);
            var div = document.createElement('div');
            var checkbox = document.createElement('input');
            checkbox.type = "checkbox";
            checkbox.onclick = function(){window.scroll_flag = checkbox.checked}
            checkbox.checked = "checked"
            div.append("Auto-Scroll-To-Bottom: ");
            div.append(checkbox);
            $(this).parent().before(div);
        }

        $(this)[0].scrollTop = $(this)[0].scrollHeight;
    });
    callScrollToBottom();
}
scrollToBottom();

或者您可以尝试使用jupyter_contrib_nbextensions的“向下滚动”功能。