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

Dec*_*out 2 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()
Run Code Online (Sandbox Code Playgroud)

第5行>>outputprint声明中有什么作用?

Mar*_*ers 6

它将print语句输出重定向到打开的类文件对象.请参阅print声明文档:

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

本质上,该行被转换为output.write('Second line.' + '\n') asprint`为它的输出添加换行符,除非表达式以逗号结尾.

语法基于bash附加>>语法(也影响了C++ <<>>I/O操作符); 请参阅PEP 214,了解为何选择此项目的充分动机.

在Python 3中,print()函数在哪里,你会写:

print('Second line.', file=output)
Run Code Online (Sandbox Code Playgroud)

代替.