【问题标题】:Python clear stdoutPython清除标准输出
【发布时间】:2015-11-17 06:23:21
【问题描述】:

我有某种网络服务器。它将日志写入重定向到文件的sys.stdout。随着文件的增长,我需要定期清除它。我可以只使用sys.stdout吗?

【问题讨论】:

  • 没有。标准输出是一个输出流。写作是你唯一能做的。

标签: python stdout


【解决方案1】:

你可以做的是删除日志文件:

rm logfile

或截断它:

echo -n > logfile

网络服务器仍将使用打开的文件描述符,该文件仍将在磁盘上,但无法再通过该文件名访问。一旦服务器重新启动(使用相同的重定向),日志文件将从头开始创建。

另一种选择是对您的日志使用 logrotate,它允许您更改正在写入的日志文件。

【讨论】:

    【解决方案2】:

    如果你想刷新标准输出,只需在你的代码中添加这一行。

    sys.stdout.flush()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-03
      • 2016-03-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多