为什么尝试直接打印到文件而不是
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
通过 help(__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 3.x内置函数,而print
是Python < 3.x的运算符。该帖子显示为2.7.2+
。 - khachikfrom __future__ import print_function
?在 Python < 3 中,print 是一个语句。 - Arihelp(__builtins__)
显示所有内容是一个错误。 - Wooble__builtins__.__dict__['print'](value, file=f1)
可以正常工作)。 - Wooble