python - 输出文件在脚本完成之前不包含任何内容

标签 python bash pbs

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

最佳答案

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

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

关于python - 输出文件在脚本完成之前不包含任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20233650/

相关文章:

python - 如何根据 Selenium、Python 和 Xpath 提供的 html 定位元素

bash - 在指定时间范围内从日志文件中提取数据

linux - 如何以正确的方式向 PBS 系统提交工作列表?

http - 使用 shell/bash 脚本读取 HTTP 输出

linux - 在 Linux 中删除以特定字符串结尾的特定文件

memory - 查找 PBS 作业使用的最大内存

r - 设置 Torque/moab 集群以在单个循环中使用每个节点的多个核心

python - 运行 pypi-server 时出现 ValueError : zero length field name in format

python - 在 IMAP 收件箱中搜索来自特定发件人的邮件并使用通配符?

python - 将比初始设置更多的 kwargs 传递给函数