为什么尝试直接打印到文件而不是sys.stdout产生以下语法错误:
sys.stdout
Python 2.7.2+ (default, Oct 4 2011, 20:06:09) [GCC 4.6.1] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> f1=open('./testfile', 'w+') >>> print('This is a test', file=f1) File "<stdin>", line 1 print('This is a test', file=f1) ^ SyntaxError: invalid syntax
从帮助(builtins),我有以下信息:
print(...) print(value, ..., sep=' ', end='\n', file=sys.stdout) Prints the values to a stream, or to sys.stdout by default. Optional keyword arguments: file: a file-like object (stream); defaults to the current sys.stdout. sep: string inserted between values, default a space. end: string appended after the last value, default a newline.
那么将标准流打印写入更改为什么正确的语法呢?
我知道有不同的也许更好的写入文件的方法,但是我真的不明白为什么这应该是语法错误…
一个很好的解释将不胜感激!
如果要print在Python 2中使用该函数,则必须从导入__future__:
print
__future__
from __future__ import print_function
但是,即使不使用该函数,也可以达到相同的效果:
print >>f1, 'This is a test'