Python 如何使其他程序能够修改现有程序

Python 如何使其他程序能够修改现有程序,python,artificial-intelligence,Python,Artificial Intelligence,我正在创建一个类似于的python程序 . 无论如何,我想做的是让用户能够修改自己的程序,但我需要帮助了解这是如何工作的。我已经浏览了源代码,我很困惑这种情况会发生在哪里,即使有人可以向我指出这将是非常有帮助的。我知道这些程序不会被沙盒化,但这并不是我现在担心的事情。如果你能给我指个方向那就太好了!谢谢大家! 这些“机器人程序”只存储为纯文本文件 中有一个通用文本编辑器。当您在给定视图(例如中的Qt4视图)中打开robot时,它只是实例化一个文本编辑器并将robot的文件交给它。同样,机器人的文

我正在创建一个类似于的python程序 . 无论如何,我想做的是让用户能够修改自己的程序,但我需要帮助了解这是如何工作的。我已经浏览了源代码,我很困惑这种情况会发生在哪里,即使有人可以向我指出这将是非常有帮助的。我知道这些程序不会被沙盒化,但这并不是我现在担心的事情。如果你能给我指个方向那就太好了!谢谢大家!

这些“机器人程序”只存储为纯文本文件

中有一个通用文本编辑器。当您在给定视图(例如中的Qt4视图)中打开robot时,它只是实例化一个文本编辑器并将robot的文件交给它。同样,机器人的文件是Python脚本这一事实并不重要;它只是将其编辑为文本文件


与此同时,战斗代码打开的机器人文件与文本编辑器作为文本文件打开的Python代码相同。您可以在中看到这段代码:它只使用
子流程
模块来运行Python,将robot文件作为参数传递。

我的另一个答案涉及您实际提出的问题。但我不认为这是你真正想知道的

你只想知道如何在一个单独的Python解释器中运行一些Python脚本,你已经有了它的路径名,对吗

虽然可以从pybotwar代码中看出这一点,但是有很多额外的东西会妨碍理解它,
conf.py
文件,可配置的额外标志,等等

但答案很简单:使用模块,就像运行任何程序一样。在本例中,Python解释器是可执行文件(通常是您想要的,与您正在使用的Python解释器相同),以及您想要作为参数运行的脚本。例如:

script_output = subprocess.check_output([sys.executable, script_path])

子流程
文档很好地解释了所有不同的选项。

如果没有editor.py文件,是否可以编写类似的程序?就像让用户写一个新的robot对象,然后将其保存到某个文件夹中一样。@user225164:当然可以。事实上,正如文档所解释的那样,如果您愿意,pybotwar也可以这样工作(看起来如果您在没有PyQt4的情况下构建它,这是唯一可以使用它的方法)。如果你想写一些没有编辑的东西,就不要写编辑。我认为这里有一个问题,你真正的问题不是你实际问的问题。您真正想知道的是如何在单独的Python解释器中运行其他Python脚本,对吗?