Python 为什么在打印到文件时,这个等号有语法错误?
我正在使用macbook上的终端将数据打印到打开的文件中: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
>>> 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,它工作了!!