使用IJulia笔记本时避免输出被截断的最佳方法

问题描述

从源头上我可以看到IJulia

将输出截断到max_output_per_request 每个执行请求的字节数,因为过多的输出会使浏览器停顿下来。

我还同意,在交互式部分中打印很长的文字不一定有用,但是有时我想打印仅用一行来跟踪进度的信息。

IJulia使用stdio_bytes跟踪写入的字节数:

using IJulia

N = 10_000
slen = 100

println("\nPrinting ",N," lines")
for i in 1:N
    IJulia_counter = IJulia.stdio_bytes[]; # IJulia byte counter
    print(rpad(string("line: ",i,",iJulia counter: ",IJulia_counter),slen),"\r")
    mod(i,50) == 0 && flush(stdout) # just forcing to print
    IJulia_counter > 524000 && flush(stdout)
end
flush(stdout)
# Final output
# Printing 10000 lines
# line: 5190,iJulia counter: 524089    
# Excessive output truncated after 524291 bytes.

我目前正在通过手动重置此计数器来解决

println("\nPrinting $N lines")
for i in 1:N
    IJulia_counter = IJulia.stdio_bytes[]; # IJulia byte counter
    print(rpad(string("line: ",50) == 0 && flush(stdout) # just forcing to print
    IJulia_counter > 524000 && (IJulia.stdio_bytes[] = 0) # Reset counter
end
flush(stdout)
# Final output
# Printing 10000 lines
# line: 10000,iJulia counter: 485810   

解决此问题的最佳方法是什么?可以进行任何外部配置吗?我不想导入IJulia只是为了防止在交互式部分中出现这种情况。

谢谢!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)