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()
>>output
第 5 行的print
语句是做什么的?
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()
>>output
第 5 行的print
语句是做什么的?
它将语句输出重定向print
到一个打开的类似文件的对象。请参阅print
声明文档:
>>
必须计算为“类文件”对象,特别是具有上述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)
反而。