微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何创建一个脚本来自动化另一个脚本?

如何解决如何创建一个脚本来自动化另一个脚本?

我下载了一个 python 脚本,但我的脚本有问题,问题是它停止工作,但是当我停止程序并重新运行它时,它有一个很好的功能来恢复上次终止的进程并继续该过程一段时间,但再次停止工作。所以,

我想创建另一个脚本来终止真正的 python 脚本并每 5 分钟重新运行一次...

但是当真正的python脚本启动时,它会询问我们是否要继续旧的终止进程,我们必须输入'y'...

谁能帮我解决这个问题,你可以使用任何语言来创建重新运行的脚本。谢谢你

解决方法

我同意您可以添加 try-catch 子句,但在回答您的问题时,您可以使用 subprocess

import subprocess
subprocess.call(["python","your_script.py"])
,

您可能需要一个错误处理程序,而不是使用另一个 Python 脚本来修复错误。

具体的解决方案取决于代码,但通常需要python_try_except

我的建议是,您将带有“错误”的代码放在一个循环中的“尝试”部分中,以寻找正确的答案,而“除外”部分将存储错误,然后您可以重新运行“错误”的代码片段。

像这样:

Powerup:update

编辑

如果代码太复杂而无法编辑,请使用这个很好的解释 How can I make one Python file run another? 它显示了在另一个文件中运行一个 python 文件的三种方法。或Run a Python script from another Python script,passing in arguments [duplicate]

使用 try-except,您可以将 while len(errors)>0: try: Your_Code_Here except: storage the error's index 放在“execfile('file.py')”的位置

Your_Code_Here
,

在下面的代码中,你应该只用你的函数替换 foo 函数 我打印 PID 以显示它进行不同的进程

from multiprocessing import Process
from time import time,sleep

def set_interval(callback,seconds):
    while True:
        process = Process(target=callback)
        process.start()
        print("started new process with PID:",process.pid)
        start = time()
        while time() - start < seconds:
            sleep(1)
        process.terminate()
        print("function has been terminated")

def foo():
    while True:
        print("I'm alive")
        sleep(3)

def main():
    set_interval(foo,10)

if __name__ == "__main__":
    main()
,

谢谢大家在这里的贡献,在阅读了你们所有的答案后,我终于解决了这个问题。这是我所做的:

  1. 我首先更改了真正的 python 脚本,删除了询问我是否要继续终止进程的代码,所以现在它只是检查是否存在任何会话,如果确实存在,则直接恢复进程。
  2. 然后我创建了另一个 Python 程序,它只是重新运行真正的 Python 文件。

再次感谢大家!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。