【问题标题】:What does the >> operator do in python? [duplicate]>> 运算符在 python 中的作用是什么? [复制]
【发布时间】:2016-02-20 21:54:30
【问题描述】:

我在一个项目中找到了这段代码,我不知道>> 是做什么的。有人解释一下吗?

def save(self, fpath=None):
        """
        Save the JSON data to fpath. This is done automatically if the
        game is over.
        """
        if fpath is None:
            fpath = _jsonf % self.eid
        try:
            print >> gzip.open(fpath, 'w+'), self.rawData,
        except IOError:
            print >> sys.stderr, "Could not cache JSON data. Please " \
                                 "make '%s' writable." \
                                 % os.path.dirname(fpath)

我知道这段代码正在从模块中的其他文件和对象中获取信息,并且我知道代码的整体工作方式。只有print >> 让我感到困惑。当这个模块安装在一个没有写访问权限的目录中时,会出现消息Could not cache...。整个文件位于here,但我怀疑它是否会有所帮助。

【问题讨论】:

  • 这个问题不是引用问题 “Python 如何简单地将 print 的输出重定向到 TXT 文件,并为每个重定向创建一个新行”。在引用的问题中,“>>”运算符用作解决方案的一部分,但未详细解释其使用。事实上,我首先找到了引用的问题,因为它没有回答我关于“>>”运算符究竟做什么的问题,所以我进一步搜索并找到了这个问题。

标签: python


【解决方案1】:

>> 打印到类似对象的文件

print 还具有扩展形式,由上述语法的第二部分定义。这种形式有时被称为“print chevron”。在这种形式中,>> 之后的第一个表达式必须计算为 “类文件” 对象,特别是具有上述 write() 方法的对象。使用此扩展形式,后续表达式将打印到此文件对象。如果第一个表达式的计算结果为None,则sys.stdout 用作输出文件。

print statement

在这种情况下,它会向stderr 打印一条错误消息

【讨论】:

  • 能否留下您在哪里找到该信息的链接?
  • 感谢您的帮助!
猜你喜欢
  • 1970-01-01
  • 2020-04-02
  • 2017-04-24
  • 2012-03-30
  • 2014-05-09
  • 2016-07-24
  • 2014-03-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多