在Python打印语句中,右移运算符如何工作?
我看到有人用“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 作为输出的文件。