有没有办法配置ipython笔记本,这样每当我打印一个长列表时,我会自动看到底部?
例如,在终端中,如果我运行以下内容:
for i in range(1000):
print i
它会自动滚动到底部:
992
993
994
995
996
997
998
999
In [2]:
但在Python笔记本中,我看到了开头,我必须手动向下滚动到最后一个数字。
我正在运行一个长循环,每次迭代都需要几秒钟,每当我想检查程序的距离时,不得不向下滚动,
谢谢,
答案 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的“向下滚动”功能。