在 Python 中的 if 语句上重新加载主脚本
Posted
技术标签:
【中文标题】在 Python 中的 if 语句上重新加载主脚本【英文标题】:Reloading main script on if statement in Python 【发布时间】:2015-11-30 17:41:41 【问题描述】:我有一个 IRC 机器人正在处理扭曲。我希望他通过外部输入重新加载自己(断开连接,重新打开他的主 .py 文件,并在他运行时进行所有更改并重新开始)
if 语句类似于:
if msg.startswith(".restart"):
if user in admin:
msg = "Restarting"
SendMsg(self, channel, msg)
reload(main.py)
我找到的唯一答案是如何重新加载模块。
编辑:做我想做的事情的最佳答案是在接受答案下面的 cmets 中
【问题讨论】:
【参考方案1】:脚本重新加载本身没有意义。执行将在哪里恢复? 唯一的可能是从头重新启动,这与杀死并重新启动进程相同。
您可以做的是将尽可能多的代码放入不同的模块(但不是主循环)中,然后从主脚本中调用该模块。
并且,当主脚本看到.reload
命令时,重新加载模块。
【讨论】:
是否有可能在别处开始自己运行然后退出()? 是的。使用os.execv(sys.argv[0], sys.argv[1:])
。 docs.python.org/3/library/os.html#os.execv以上是关于在 Python 中的 if 语句上重新加载主脚本的主要内容,如果未能解决你的问题,请参考以下文章