首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Python 2.7:打印到文件

Python 2.7:打印到文件
EN

Stack Overflow用户
提问于 2012-02-17 01:28:38
回答 5查看 322.3K关注 0票数 99

为什么尝试直接打印到文件而不是sys.stdout会产生以下语法错误:

代码语言:javascript
复制
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__)中,我有以下信息:

代码语言:javascript
复制
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写入的正确语法是什么呢?

我知道有不同的或者更好的写入文件的方法,但是我真的不明白为什么这应该是一个语法错误……

一个不错的解释将不胜感激!

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-02-17 01:36:45

如果要在Python2中使用print函数,则必须从__future__导入

代码语言:javascript
复制
from __future__ import print_function

但是你也可以在不使用函数的情况下达到同样的效果:

代码语言:javascript
复制
print >>f1, 'This is a test'
票数 139
EN

Stack Overflow用户

发布于 2012-02-17 01:32:39

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

代码语言:javascript
复制
f1=open('./testfile', 'w+')
f1.write('This is a test')
f1.close()
票数 73
EN

Stack Overflow用户

发布于 2012-02-17 01:36:25

print(args, file=f1)是Python3.x语法。对于Python2.x,使用print >> f1, args

票数 44
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9316023

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档