Kat*_*ryn 3 python printing terminal
我在macbook上使用Terminal将数据打印到一个打开的文件中:
>>> out=open("test_output.txt","w")
>>> print("hello",file=out)
File "<stdin>", line 1
print("hello",file=out)
^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)
为什么会出现SyntaxError以及如何修复它?无论如何,相同的脚本在IDLE中运行良好.
PS:
它是Python 2.7,我实际安装了Python 3.5,但是NetworkX和Matplotlib的软件包都自动安装到Python 2.7的库中,因此这是我在进行社交网络分析时使用的平台.
在我开始回答有关语法错误的问题之前,我首先要告诉您有两个版本的Python.Python 2和Python 3. Python 3是该语言的未来,也是IDLE安装中运行的版本.Python 2是您python在命令行中调用时使用的版本.
两者之间没有太大区别,但print肯定是其中之一.print是Python 3中的一个函数,但在python 2中是一个语句.这甚至意味着什么?在Python 2中,print不返回任何内容,只是将数据推送到命令行.在Python 3中,它实际上返回了一些东西.这意味着在Python 3中,您可以执行以下操作:
a = print("thing")
Run Code Online (Sandbox Code Playgroud)
在python 2中,如果我们要做同样的事情,我们会得到一个语法错误:
>>> a = print("thing")
File "<input>", line 1
a = print("thing")
^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)
因为print是Python 3中的一个函数,所以可以为它提供额外的参数.这就是为什么你可以做类似的事情print("thing", out=file).在python 2中,等价物将是print>>file, "thing".
所以,你现在有几个选择.您可以更改您的.py文件以反映Python 2中的正确语法.您可以使用python 3来运行文件而不是python 2,python3以在命令行中调用python.