【问题标题】:cmd.exe does not redirect errors until the program is finishedcmd.exe 在程序完成之前不会重定向错误
【发布时间】:2014-08-14 07:26:46
【问题描述】:

我用 web.py 编写了一个程序,并使用 2>error.txt 将错误放入一个文件中。这在 Linux 上做得很好,但在 Windows 上,当发生错误时,文件中没有写入任何内容。我发现在Windows上,在正常情况下,发生错误,引发错误的程序将被关闭,并将错误放入文件中。但问题是,在 web.py 中,发生了错误,程序不会被关闭,所以错误不会被写入文件中。那我该怎么办?

【问题讨论】:

标签: python windows command-line cmd


【解决方案1】:

this mailing list entry 中声明

在 Windows 上,如果 stdout 和 stderr 引用一个字符,则它们是无缓冲的 设备,否则完全缓冲(Windows 没有行缓冲; setvbuf(_IOLBF) 等价于 setvbuf(_IOFBF))。

我会尝试为此寻找其他来源,但这确实可以解释您的问题。你可以在这里查看:

Disable output buffering

如何在 Python 中关闭输出缓冲。

【讨论】:

  • 非常感谢,正是缓冲区问题。
猜你喜欢
  • 2016-07-26
  • 2014-07-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-16
  • 2015-07-19
  • 2013-06-09
相关资源
最近更新 更多