Python2.7:打印到Fi

2024-03-29 12:49:04 发布

您现在位置:Python中文网/ 问答频道 /正文

为什么尝试直接打印到文件而不是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

从“帮助”(“内置”)中,我获得了以下信息:

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.

那么,更改标准流打印写入的正确语法是什么?

我知道有不同的可能更好的方法来写文件,但我真的不明白为什么这应该是一个语法错误。。。

如果您能给我一个好的解释,我将不胜感激!


Tags: or文件thetotestdefaultisvalue
3条回答

print(args, file=f1)是python 3.x语法。 对于python 2.x,使用print >> f1, args

如果要在Python 2中使用print函数,必须从__future__导入:

from __future__ import print_function

但不使用该功能也可以产生相同的效果:

print >>f1, 'This is a test'

print是python 2.X中的一个关键字。您应该使用以下内容:

f1=open('./testfile', 'w+')
f1.write('This is a test')
f1.close()

相关问题 更多 >