为什么尝试直接打印到文件而不是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.
那么,将标准流打印内容写入更改的正确语法是什么?
我知道有不同的也许更好的写入文件的方法,但是我真的不明白为什么这应该是语法错误...
一个很好的解释将不胜感激!
是
—
Ari
from __future__ import print_function
吗 在Python <3中,print是一条语句:
没有!我没有 你当然是对的。那解决了问题。该死!因此,在help(_ Builtins_)中记录的打印文件是将来的(3.x)版本的打印文件,其语法有所不同。非常感谢,您也谢谢,kachik
—
alex
海事组织,
—
Wooble 2012年
help(__builtins__)
表明这根本是一个错误。
...尽管进一步研究,python 2.7.2 确实具有内置的打印功能,但是您通常无法轻松地正常访问它(
—
Wooble
__builtins__.__dict__['print'](value, file=f1)
尽管可以工作)。
print()
是python 3.x内置函数,而print
python <3.x运算符。帖子显示2.7.2+
。