【问题标题】:How to update stdout.txt during task execution (real time)?如何在任务执行期间(实时)更新 stdout.txt?
【发布时间】:2019-11-08 21:46:13
【问题描述】:

我正在使用 Azure Batch 执行具有不同步骤的进程,该进程是用 Python 编程的。我想在 Azure Batch 的 stdout.txt 文件中记录我的进程所在的步骤。

到目前为止,我正在打印我所在的步骤。这样,一旦批处理任务完成,打印将出现在stdout.txt。但是,我找不到实时更新stdout.txt文件的方法。

例如,假设我有以下代码 sn-p:

print('Step 1')
# Step 1 code 
print('Step 2')
# Step 2 code 
print('Step 3')
# Step 3 code 

执行完我的整个任务后,stdout.txt 将如下所示:

第一步

第 2 步

第 3 步

但是,在此过程中,如果我尝试访问该文件,它将为空。

我想知道是否有任何方法可以实时获取这些打印,而不必等到任务完成才能写下一些东西,即当任务仍在步骤 1 中时,我的唯一一行stdout.txt 将是:

第一步

当一个新步骤开始时文件将被更新(因此打印)。有什么想法或提示吗?

【问题讨论】:

  • 你想用这个解决什么问题?

标签: azure azure-batch


【解决方案1】:

这很可能是程序缓冲输出的副作用。如果您需要立即查看标准输出流中的数据,您可能需要刷新。您可以尝试flush stdout in Python 或启动Python in unbuffered mode

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-07
    • 2012-02-21
    • 1970-01-01
    • 1970-01-01
    • 2021-06-12
    • 2013-11-02
    • 1970-01-01
    • 2019-06-15
    相关资源
    最近更新 更多