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
有什么作用?
答案 0 :(得分:6)
它将print
语句输出重定向到类似打开文件的对象。请参阅print
statement documentation:
>>
之后的第一个表达式必须求值为“类文件”对象,特别是具有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)
代替。