python如何重新执行脚本?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python如何重新执行脚本?相关的知识,希望对你有一定的参考价值。
如何退出当前正在执行的脚本,然后又重头开始,代码怎样写?
我也出现过这样的问题,如果在本脚本执行while的话,如果使用一些模块,有时候会出错。比如使用websocket的时候,(可能自己水平也不行,找了半天没发现出错的原因),后来放弃本脚本while。
我是这样解决的:
写一个脚本,如a.py,使用os.system(cmd) (或是其他模块) 来运行b.py。
至于b.py什么时候退出,就看你自己了
PS:至于这样做是否会影响效率,因为程序小,就不在考虑范围内了
例:
#!/usr/bin/python# -*- coding: utf-8 -*-
# encoding: utf-8
import os
if __name__ == '__main__':
while 1:
cmd = 'python D:\\\\b.py' #必须转义'\\'
os.system(cmd) 参考技术A 如果你是想在执行一个脚本过程中,再从头开始执行,加个循环+continue就行了嘛。 参考技术B 用while为真时,控制整个脚本即可。亲测哦! 参考技术C 执行python脚本只需要对python文件做如下操作即可:
在python文件里第一行加上#! /usr/bin/python,即你的python解释器所在的目录。另外还有一种写法是#! /usr/bin/env python
编辑完成python脚本文件后为它加上可执行权限。
例如你的python脚本文件叫做runit.py,那么就在shell中输入如下命令:chmod +x runit.py
之后直接在shell中输入./runit.py就可以执行你的python程序了。
当然这是在Linux下的操作,如果想在windows下直接执行Python程序,就需要使用py2exe工具将python源程序编译成exe文件了。 参考技术D 请问你想要实现的功能是代码自己重启呢还是你去手动重启呢
如何使 PHP 永久运行脚本“忘记”一切并几乎像重新启动一样执行
【中文标题】如何使 PHP 永久运行脚本“忘记”一切并几乎像重新启动一样执行【英文标题】:How to make PHP permanently running script "forget" everything and perform almost as a restart 【发布时间】:2022-01-04 19:28:41 【问题描述】:我有一个在服务器上永久运行的 PHP 脚本。我重新启动它的权限非常有限。有什么办法可以从内部重置脚本中的所有内容?我并不是要物理地停止和启动脚本。
我正在寻找一种几乎可以重新启动它的方法(unset()
所有变量,取消包含所有包含,“忘记”所有功能),就像重新启动脚本一样。
原因是至少在调试阶段能够“更新”脚本。在本地主机上,一切正常,但在服务器上存在一些问题,对于任何更改,我都必须致电服务台)。假设在包含中进行一些更改 - 然后再次包含它,这意味着初始化新函数,激活新变量....
我知道重新启动会更容易,更好,crone 会完成这项工作,但不幸的是没有选项......(愚蠢的情况,我知道 - 但我无法改变它,所以在我力所能及的范围内寻找解决方案)
想法是
<?
while (true)
require(myInclude.php);
while (true)
// here is the code I need to process, it is in endless loop as it serves as a websocket server
doWhatIsNeeded(this_works_fine_no_need_to_adjust);
// condition that starts all the "cleaning"
if ($restartIsRequired == true)
break;
//unset all variables, un include all includes, "forget" all functions
// **************************************************************
// ****** here this is the part, I would like to help with ******
// ****** thank you :) ******
// **************************************************************
【问题讨论】:
您似乎可以使用 cron 作业,但大多数时候有替代方案,我只是不明白,请您提供更多信息和实际代码。 “取消设置函数”到底是什么意思,为什么需要这样做?有点不清楚您要在这里解决的实际问题是什么。由于脚本永久运行,您面临什么具体问题? 谢谢大家,cron 将是完美的,不幸的是,在这种情况下它不是解决方案(愚蠢的情况)......实际代码(包括:)超过 8000 行......所以我有写在这里一些例子......谢谢@Noé和ADyson如果你有时间检查更新的问题,它可能会使情况更清楚。 好的。那么,正如您所描述的,您想在什么条件下“重置”或“更新”它?脚本如何知道是时候这样做了?你有什么样的访问权限......你可以在它定期检查的文件中设置一个值,或者在数据库或其他东西中设置一个值吗?除非你只是让它在一段时间后重置所有变量,否则你必须有某种方式向它发出信号。 当然,该脚本处理数千个 websocket 消息,因此其中之一是启动该消息的那个(或者我可以将其保存到数据库并每隔 1000000 次检查一次)......那不是一个问题:) 我知道如何取消设置所有变量,但不知道如何“取消定义”函数和取消包含...以便在新的循环中重新开始(感谢您的时间和兴趣@ADyson: ) 【参考方案1】:这取决于你想用你的函数做什么,我需要更多信息来尝试和帮助更多。您似乎可以从使用诸如 cron 作业之类的调度程序中受益。
【讨论】:
以上是关于python如何重新执行脚本?的主要内容,如果未能解决你的问题,请参考以下文章
python+selenium 在执行测试脚本时,遇到错误如何能继续执行下去而不停止