在脚本完成之前,输出文件不包含任

时间:2013-11-27 04:01:42

标签: python bash pbs

我编写了一个python脚本,其中有几个print语句。打印的信息可以帮助我监视脚本的进度。但是,当我将包含python my_script &> output的bash脚本qsub到计算节点上时,即使脚本正在运行并打印某些内容,输出文件也不包含任何内容。脚本完成后,输出文件将包含输出。那么当脚本运行时,如何通过输出文件实时获得输出。

2 个答案:

答案 0 :(得分:4)

在每次写入或每次写入调用sys.stdout.flush()之后,实际写入文件而不是管道和刷新,但最好使用记录器功能并用日志替换打印件。

来自评论: 记录器功能是您调用的功能,而不是打印输出到文本的某个位置,可能带有时间戳和其他信息,它们通常允许您将各种数量的信息输出到各种目的地,包括标准输出和文件。有关在日志记录函数中构建的pythons的信息,请参阅python 23文档。

答案 1 :(得分:0)

我喜欢有时为sys.stderr写数据。它避免了冲洗这么多的需要。但是如果你有时为管道生成输出,那么使用sys.stdout你会更好。