【问题标题】:What is the python equivalent to $|=1 in Perl在 Perl 中相当于 $|=1 的 python 是什么
【发布时间】:2019-03-12 01:15:08
【问题描述】:

您好,我是 Perl 和 CGI​​ 的新手。

我正在尝试将 perl 脚本转换为 python。

脚本中提到了$|=1。我的理解是它清除了缓冲区。

我正在搜索是否有任何 python 等效于做确切的事情。

有什么建议吗??

【问题讨论】:

  • 具体$|=1相当于设置当前选择的输出句柄的autoflush属性,使其在打印时刷新而不是缓冲。
  • 在 CGI 脚本中使用$| = 1; 真的有意义吗???
  • 不知道他们为什么提到 $|=1。剧本是十年前写的。我只是想把它转换成 Python。

标签: python python-3.x python-2.7 perl cgi


【解决方案1】:

我会考虑暂时不用担心移植这条线,因为在每个 print 之后刷新标准输出可能是您最不担心的移植问题。

但如果是的话,你有很多选择:

  • 只需将flush=True 关键字参数添加到您的print 函数调用。
  • "unbuffered" mode with the -u switch 中运行 Python。
  • 在无缓冲模式下重新打开标准输出(例如最后的0 in):
    • sys.stdout = os.fdopen(sys.stdout.fileno(), 'w', 0)
  • 编写一个 print 包装函数来隐藏内置 print 并刷新标准输出
  • 编写一个 TextIOWrapper 对象,该对象包装 sys.stdout 并刷新

我会尝试为其余的点找到一些链接并进行编辑。

【讨论】:

    猜你喜欢
    • 2015-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-01
    • 2018-11-16
    • 1970-01-01
    • 2011-12-12
    相关资源
    最近更新 更多