在Python打印语句中,右移运算符如何工作?

19 投票
1 回答
3524 浏览
提问于 2025-04-16 00:12

我看到有人用“print”和“>>”来把东西写进文件:

In [7]: with open('text', 'w') as f:
   ...:     print >> f, "Hello, world!"
   ...:

In [8]: !type text
Hello, world!

这是什么原理呢?我什么时候应该用这个,而不是直接用“write”方法呢?

1 个回答

16

来自 https://docs.python.org/2/reference/simple_stmts.html#the-print-statement

print 还有一种扩展的写法,这种写法在上面提到的语法的第二部分中定义。这个写法有时被称为“打印尖括号”。在这种写法中,紧跟着 >> 的第一个表达式必须是一个“像文件一样”的对象,也就是说,它需要有一个叫做 write() 的方法。使用这种扩展写法后,后面的表达式会被打印到这个文件对象中。如果第一个表达式的结果是 None,那么就会使用 sys.stdout 作为输出的文件。

撰写回答