我在 macbook 上使用终端将数据打印到打开的文件中:
>>> out=open("test_output.txt","w")
>>> print("hello",file=out)
File "<stdin>", line 1
print("hello",file=out)
^
SyntaxError: invalid syntax
为什么会出现SyntaxError,如何解决?无论如何,相同的脚本在 IDLE 中运行良好。
附言:
它是 Python 2.7,我实际上已经安装了 Python 3.5,但是 NetworkX 和 Matplotlib 的包都自动安装到 Python 2.7 的库中,所以这是我在进行社交网络分析时使用的平台。
最佳答案
在我开始回答您有关语法错误的问题之前,我首先需要告诉您 Python 有 两个 版本。 Python 2 和 Python 3。Python 3 是该语言的预期 future ,也是在您的 IDLE 安装中运行的版本。 Python 2 是您在命令行中调用 python
时使用的版本。
两者之间没有太大区别,但 print
肯定是其中之一。 print
在 Python 3 中是一个函数,但在 python 2 中是一个语句。这到底是什么意思?在 Python 2 中,print 不返回任何内容,它只是将数据推送到命令行。在 Python 3 中,它实际上返回一些东西。这意味着在 Python 3 中,您可以执行如下操作:
a = print("thing")
在 python 2 中,如果我们做同样的事情,我们会得到一个语法错误:
>>> a = print("thing")
File "<input>", line 1
a = print("thing")
^
SyntaxError: invalid syntax
因为 print
是 Python 3 中的一个函数,您可以为它提供额外的参数。这就是为什么您可以执行类似 print("thing", out=file)
的原因。在 python 2 中,等效项是 print>>file, "thing"
。
因此,您现在有几个选择。您可以更改 .py
文件以反射(reflect) Python 2 中的正确语法。您可以使用 python 3 运行该文件,而不是使用 python 2 使用 python3
在命令行。
关于python - 为什么在打印到文件时这个等号会出现 SyntaxError?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29860552/