【问题标题】:What does "print >>" do in python? [duplicate]“打印>>”在python中做了什么? [复制]
【发布时间】:2015-12-20 20:47:35
【问题描述】:

我必须将代码从 python 2 翻译成 python 3,我不明白 print >> 做了什么以及我应该如何在 python 3 中编写它。

print >> sys.stderr, '--'
print >> sys.stderr, 'entrada1: ', entrada1
print >> sys.stderr, 'entrada2: ', entrada2
print >> sys.stderr, '--'

【问题讨论】:

    标签: python python-3.x python-2.x


    【解决方案1】:

    >> sys.stderr 部分使print 语句输出到标准错误,而不是 Python 2 中的标准输出。

    引用documentation

    print 也有一个扩展形式,由 上面描述的语法。这种形式有时被称为“打印 雪佛龙。”在这种形式中,>> 之后的第一个表达式必须 评估为“类文件”对象,特别是具有 write() 方法如上所述。通过这种扩展形式, 随后的表达式将打印到此文件对象。如果第一个 表达式计算为None,然后sys.stdout 用作文件 输出。

    在 Python 3 中,将 file 参数用于 print() 函数:

     print("spam", file=sys.stderr)
    

    【讨论】:

      【解决方案2】:

      要将这些从 Python 2 转换为 Python 3,请更改:

      print >>sys.stderr, 'Hello'
      

      到:

      print('Hello', file=sys.stderr)
      

      【讨论】:

        【解决方案3】:

        用于打印到stderr note

        sys.stderr.write()
        

        可跨版本移植,但您需要添加换行符,这与print 不同;比如

        import sys
        
        errlog = sys.stderr.write
        errlog("an error message\n")
        

        【讨论】:

        • 还要注意.write() 期望它的参数是一个字符串。要写字符串以外的东西,需要先转换成字符串:sys.stderr.write(str(['the answer', 42]))
        猜你喜欢
        • 1970-01-01
        • 2012-04-09
        • 2013-11-13
        • 2012-11-28
        • 1970-01-01
        • 2020-03-19
        • 2012-08-01
        • 1970-01-01
        • 2023-01-11
        相关资源
        最近更新 更多