Python 为什么在打印到文件时,这个等号有语法错误?

Python 为什么在打印到文件时,这个等号有语法错误?,python,printing,terminal,Python,Printing,Terminal,我正在使用macbook上的终端将数据打印到打开的文件中: >>> out=open("test_output.txt","w") >>> print("hello",file=out) File "<stdin>", line 1 print("hello",file=out) ^ SyntaxError: invalid syntax out=open(“test\u output.tx

我正在使用macbook上的终端将数据打印到打开的文件中:

>>> out=open("test_output.txt","w")
>>> print("hello",file=out)
  File "<stdin>", line 1
    print("hello",file=out)
                      ^
SyntaxError: invalid syntax
out=open(“test\u output.txt”、“w”) >>>打印(“hello”,file=out) 文件“”,第1行 打印(“hello”,file=out) ^ SyntaxError:无效语法 为什么会出现SyntaxerError以及如何修复它?无论如何,相同的脚本在空闲时运行良好

附言:


它是Python2.7,我实际上已经安装了Python3.5,但是NetworkX和Matplotlib的软件包都自动安装到Python2.7的库中,所以这就是我在进行社交网络分析时使用的平台。

如果您使用的是终端

$ python filename.py
我几乎可以保证,您实际上正在Python2中运行Python3代码(
print(…)
)。试着做以下事情:

$ py -3 filename.py
看看这是否能解决你的问题

要确认,您可以执行以下操作:

$ python --version

如果希望上述代码在python-2(2.6版以后)中可移植,则需要从导入print_函数

例如:

from __future__ import print_function
out=open("test_output.txt","w")
print("hello",file=out)

这列出了python-2.X中print语句的用法与python-3.X中print函数的用法的区别。

在回答您关于语法错误的问题之前,我首先需要告诉您python有两个版本。Python 2和Python 3。Python3是该语言的未来,也是在空闲安装中运行的版本。Python 2是在命令行中调用
Python
时使用的版本

这两者之间没有太大区别,但
print
无疑是其中之一
print
是Python 3中的一个函数,但在Python 2中是一个语句。这到底是什么意思?在Python2中,print不返回任何内容,它只是将数据推送到命令行中。在Python3中,它实际上返回了一些东西。这意味着在Python 3中,您可以执行以下操作:

a = print("thing")
在python 2中,如果我们做同样的事情,我们会得到一个语法错误:

>>> a = print("thing")
  File "<input>", line 1
    a = print("thing")
            ^
SyntaxError: invalid syntax
>a=打印(“东西”)
文件“”,第1行
a=打印(“东西”)
^
SyntaxError:无效语法
因为在Python3中,
print
是一个函数,所以可以为它提供额外的参数。这就是为什么您可以执行类似于
打印(“thing”,out=file)
的操作。在Python2中,等价物是
print>>文件,“thing”


所以,你现在有几个选择。您可以更改
.py
文件以反映Python 2中的正确语法。您可以使用python3而不是Python2来运行文件,在命令行中使用
python3
来调用python

这是Python2还是Python3?你到底想打印什么?您正在尝试打印文件对象吗?
print()
函数是Python 3的一项功能;如果文件以uuu future uuuu import print u函数的
开头,则Python 2.6+中也提供了该函数(通常推荐使用该函数)
@Antti-小说明:您可以使用
print()
语法,至少可以追溯到Python 2.5,但它只是在3中被更改为类似函数,以及从2.6版开始的
\uuuuuuuuuuuuuuuuuuuu
模块。就像你说的。它是python 2.7,多亏了Antti,它工作了!!