python - 为什么在打印到文件时这个等号会出现 SyntaxError?

标签 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

为什么会出现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/

相关文章:

python - vscode python 转到符号不工作

python 请求无法连接到 NSE 印度,连接错误

css - Internet Explorer 8 标准模式下的 Bing map 打印问题

linux - Bash 命令记录器

linux - 如何使用 "sort"基于最后一个整数对字符串文件进行排序?

android - 输入 "tap"命令丢失(Android 终端模拟器)

python - 在 c++ 中嵌入 python,示例

python - 无法从 python 2.7 中的命令行获取真/假值

android - Android 上的蓝牙打印

c# - 获取共享打印机的打印队列详细信息