如何解决如何创建一个脚本来自动化另一个脚本?
我下载了一个 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()
,
谢谢大家在这里的贡献,在阅读了你们所有的答案后,我终于解决了这个问题。这是我所做的:
- 我首先更改了真正的 python 脚本,删除了询问我是否要继续终止进程的代码,所以现在它只是检查是否存在任何会话,如果确实存在,则直接恢复进程。
- 然后我创建了另一个 Python 程序,它只是重新运行真正的 Python 文件。
再次感谢大家!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。