【问题标题】:Why is my python file not running?为什么我的 python 文件没有运行?
【发布时间】:2015-08-20 22:02:43
【问题描述】:

我正在尝试一步一步地阅读一本书,但我要么一无所获,要么出错。

谁能告诉我这是怎么回事?

import sys

class RedirectStdoutTo:
    def _init_(self, out_new):
        self.out_new=out_new

    def _enter_(self):
        self.out_old= sys.stdout
        sys.stdout = self.out_new

    def _exit_(self, *args):
        sys.stdout = self.out_old

print('A')
with open('out.log', mode='w', encoding='utf-8') as a_file, RedirectStdoutTo(a_file):
    print('B')
print('C')

当我在 Python 中运行时,我会写 python log.py

它返回一个错误说:

File "<stdin>", line 1
    python ilog.py
              ^
SyntaxError: invalid syntax

【问题讨论】:

  • 您是否尝试使用终端样式的命令从 Python 解释器中运行 Python 脚本?
  • 你试图在什么操作系统上运行它?
  • 在 Python 解释器中而不是在操作系统的控制台/终端中执行 python log.py 就像启动你的汽车并告诉它给你一个三明治,而不是告诉你的朋友开车去接你一个三明治。
  • 如果你想从命令行启动你的脚本,请确保你阅读了 Python shebang:stackoverflow.com/questions/6908143/…
  • 还要注意它应该是__init__(等人),而不是_init_。您缺少一组下划线。

标签: python input output stdout stderr


【解决方案1】:

问题不在于您的脚本,而在于您如何调用它。据我了解,您启动 python,然后输入python log.py。这是错误 - 您需要以 log.py 作为参数来启动 python,而不是在已经启动的 Python 交互式会话中输入这个。

如果您从 OS X 终端(或类似的命令行提示符)启动 python,则不要说 python,而是说 python log.py,而您与 log.py 文件位于同一目录中。

python log.py 命令不是 Python,而是一个shell 命令。它适用于您的 OS X 终端的 bash 提示符,而不适用于 Python 本身。

【讨论】:

  • 我正在使用 OS X 终端。
  • 我首先输入 python 来启动它。然后访问该文件,我写: python log.py
  • 好,那就简单了。当您想要启动 Python 时,只需在 OS X 终端中输入 python log.py 而不是 python。看,这个想法是调用 Python,将你的脚本文件名作为 argument,而不仅仅是启动 Python(这会调用所谓的交互式 shell)然后试图告诉它加载一些东西。跨度>
猜你喜欢
  • 2019-12-29
  • 1970-01-01
  • 2019-10-21
  • 1970-01-01
  • 1970-01-01
  • 2017-03-17
  • 2020-08-21
  • 2014-07-03
  • 2017-12-01
相关资源
最近更新 更多