我正在尝试一步一步地阅读一本书,但我要么一无所获或得到错误。
谁能告诉我发生了什么?
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
答案 0 :(得分:1)
问题不在于您的脚本,而在于您如何调用它。据我所知,你启动python,然后键入python log.py
。这是错误 - 您需要以log.py
作为参数启动python,而不是将其输入已经启动的Python交互式会话。
如果从OS X终端启动python(或类似的命令行提示符),那么当您与{{1}在同一目录中时,不要说python
说python log.py
。文件。
log.py
命令是不是 Python,而是一个shell命令。它适用于OS X终端的bash提示,而不适用于Python本身。