使用 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/