我正在写一个可以理解英语命令的解释器,例如“ say Hello World”。 Python代码从stdin读取输入。对于那件事我没有任何疑问。然后将其转换为Python代码并将其附加到文件中。再次,没问题。然后,我有一个函数运行文件中的代码。该函数如下所示:
def run(runfile):
with open(runfile,"r") as rnf:
exec(rnf.read())
然后我就写:
run("file.py")
然后我运行文件中的代码并模拟输出。 然后,我打开文件,好像要写入文件,然后在程序末尾(在最后一行)将其关闭,以删除文件内容,如下所示:
open("file.py", "w").close()
问题是当我键入英文命令并运行文件时,它可以正常运行。然后,我输入一个不同的英语命令,它运行 previous 执行的输出。然后我再次运行它,它可以正常工作。为什么会发生这种情况,我该如何解决? (随时询问有关我的代码的问题)
答案 0 :(得分:0)
您需要确保没有将传递给文件的每个命令附加到文件中。在这种情况下(如果从头开始添加),它将始终从先前的保存开始执行并继续。可以在编写传递到文件的命令的地方共享源代码吗?
答案 1 :(得分:0)
谢谢大家,但我通过将所有问题编译成字符串然后在其上使用exec()
来解决了问题。