python - 网状不会实时打印到控制台

标签 python r reticulate console-output

使用 Python 的 print() (或据我所知,任何其他控制台输出生成)循环结构中的函数并通过 运行代码网纹在 R 中,输出仅在执行完成后打印。例如,采用以下循环,每次迭代后进入休眠状态 1.5 秒;循环结束后,运行号全部打印出来。这同样适用于将 Python 代码保存到单独的 .py 文件然后运行 ​​reticulate::py_run_file() .

library(reticulate)

py_run_string("
import time

for i in range(5):
   print(str(i))
   time.sleep(1.5) # sleep for 1.5 sec
")

有谁知道这种行为的来源,如果可能的话,如何规避它?

最佳答案

显然,您有时需要强制 pyhton 导出标准输出。您可以通过添加 sys.stdout.flush() 来做到这一点。到您的代码:

library(reticulate)

py_run_string("
import time
import sys

for i in range(5):
   print(str(i))
   time.sleep(1.5) # sleep for 1.5 sec
   sys.stdout.flush()
")

see over here described with nohup

关于python - 网状不会实时打印到控制台,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60736401/

相关文章:

python - 是否可以使用 python 恢复给定统一差异和原始文本的文本

python - 使用 ElementTree 在 XML 文件中设置属性值

r - 在 R 数据帧中一次获取多个值的尾部索引

python - 抑制 rpy2 中的警告

R 网状 : 'Unable to locate conda environment' when attempting to use_condaenv(required = TRUE)

python - R reticulate 从 Github 安装 python 库

python - 使用 PhantomJS 和 Firefox 实现浏览器自动化,支持不同的浏览器

python - 访问数据框的名称

R mapproj lambert-azimuthal 等面积投影

python - R 中的 scikit-learn 与网状结构