我正在尝试在IDLE中编写一个内部REPL,将所有内容记录到文本文件中。
类似
def myrepl():
myinput = ''
with open("myrepl.txt", "a") as log:
while not myinput == "EXIT":
myinput = input("Enter an expression to evaluate.\n")
log.write(myinput + "\n")
if myinput == "EXIT":
break
eval(myinput)
print(eval(myinput))
log.write(str(eval(myinput)) + "\n")
这会在我输入内容时返回错误。当我尝试进行分配时,eval()也会出错。当我输入不正确的东西时,REPL也会中断。
有没有办法处理这些异常?如果是这样,怎么样?另外,有没有办法将eval()的输出捕获为字符串?以str(eval("print(0)"))
为例,会产生额外的None
。