c语言 - 另一个cmd窗口中的Python重新启动脚本



有没有办法在另一个外壳中重新启动另一个脚本?我的脚本有时会陷入困境,等待阅读Gmail和IMAP的电子邮件。我想从另一个脚本重新启动主脚本,但不停止执行第二个脚本我尝试了:

os.system("C:UserslightDocumentsPythonBOTBOLGmailV1send.py")
process = subprocess.Popen(["python", "C:UserslightDocumentsPythonBOTBOLGmailV1send.py"])

,但两者都在第二个外壳中运行主机编辑:对不起,对于外壳,我的意思是终端窗口

在您上次评论之后,作为语法显示您正在使用Windows,我假设您想在另一个控制台中启动Python脚本。这里的魔术单词是START,如果您希望启动与新的启动执行,或者START /W如果要等待子过程的结尾。

在您的情况下,您可以使用:

subprocess.call(["cmd.exe", "/c", "START", "C:PathToPYTHON.EXE",
    "C:UserslightDocumentsPythonBOTBOLGmailV1send.py"])

子进程具有一个名为shell的选项,这就是您想要的。操作系统呼叫正在阻止,这意味着只有命令完成后,解释器才会移至下一行。另一方面,子进程流行是非阻止,但是这两个命令都将从运行此代码的过程中产生子进程。如果要在shell中运行并获得访问壳功能执行此操作,请在子过程中尝试shell = true。

我可以尝试解释您需要的一切,但我认为此视频会做得更好:YouTube视频有关多线程

这将使您能够运行2件事F.E.在检查电子邮件中有1次运行,另一封在输入上,因此不会在那一刻停止并使多个"货架"成为可能。

如果您真的想为此有一个不同的窗口,对不起,我无法帮助。

希望这是您正在寻找的。

最新更新