【发布时间】:2018-10-27 22:02:13
【问题描述】:
我正在从 jupyter notebook 执行 Nodejs 脚本,并且 Nodejs 输出的输出未显示在 notebook 输出中。我通过stackoverflow找到了这个解决方案Constantly print Subprocess output while process is running。但是,这个解决方案只谈论加工线。 Nodejs 代码的编写方式是在处理文件时输出一个字符,例如“#”。它看起来像命令行上的进度条。由于没有换行符,因此在使用上面链接中的解决方案时,所有这些“#”符号都会累积,并在 Nodejs 代码执行完成后打印其中的一部分。我希望看到的是基于换行符和基于时间的输出的组合。
例如,如果 Nodejs 处理了 10 个文档,在命令行上我会看到十个 # 符号实时出现(一次一个)。假设在处理了 10 个文档后打印了一个新行(如下所示)。处理每个文件需要 1 秒。
"##########"
"##########"
"##########"
如果我将基于时间的输出和基于换行符的输出结合起来。对于 7 秒的时间限制,我应该能够看到下面的输出。引号用于显示时间间隔。
"#######""###"
"#######""###"
7 秒,3 秒(因为遇到换行),然后 7 秒.....
或
"#######""###"
"####""######"
7 sec, 3 sec (因为遇到新行), 4 sec (结合之前的 3 sec 是 7 sec), 6 sec (因为遇到新行)......
如果有人能想出一个更好的解决方案,每个 # 的实时输出可以显示在控制台、python idle 或 jupyter notebook 输出上,那将是完美的。
【问题讨论】:
标签: python node.js subprocess jupyter-notebook jupyter