什么是>> for python 2中的打印后命令?

时间:2013-03-26 11:50:21

标签: printing python-2.x stringio

import cStringIO

output = cStringIO.StringIO()
output.write('First line.\n')
print >>output, 'Second line.'

# Retrieve file contents -- this will be
# 'First line.\nSecond line.\n'
contents = output.getvalue()

第5行的>>output语句中print有什么作用?

1 个答案:

答案 0 :(得分:6)

它将print语句输出重定向到类似打开文件的对象。请参阅print statement documentation

  

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

基本上,该行被翻译为output.write('Second line.' + '\n') as print`为其输出添加换行符,除非表达式以逗号结尾。

语法基于bash append >>语法(它也影响了C ++ <<>> I / O运算符);请参阅PEP 214了解为何选择此项目的充分动机。

在Python 3中,print()是一个函数,你可以写:

print('Second line.', file=output)

代替。