python程序中断然后接着中断代码继续运行问题

 更新时间:2024年02月18日 15:39:43   作者:laoli815  
这篇文章主要介绍了python程序中断然后接着中断代码继续运行问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

前言

python通过django,flask框架开发运维管理的时候,碰到的一个功能可能涉及很多个模块,里面涉及了多个表数据,如果前面的运行都很不错,但是中间一旦报错了,这就很烦,程序退出了,需要重新再来一遍,数据也需要重新清洗。

如果有一个很好的选择可以让程序在在有问题的模块部位中止,主进程一直不退出继续保持运行状态,处理好有问题的模块之后运行下面没问题的模块即可

import  time
import psutil
import datetime,os
pause=psutil.Process(os.getpid())
from jielong import GoodMessage
msg=None
try:
	print("程序启动时间:",datetime.datetime.now())
    g=GoodMessage('狗',10)
    with open('drink.txt','w+',encoding='gbk') as f:
        msg=g.drink(20)
        f.write(msg)
except Exception as e:
    print("程序出异常了所以需要暂停当前进程ID是:{}".format(os.getpid()))
    pause.suspend()
with open('drink.txt','r+') as f:
    msg=f.read()
for i in range(5):
    print(f"执行时间是{datetime.datetime.now()}")
    print(msg)
    time.sleep(2)

运行结果

程序启动时间: 2022-05-26 11:08:03.661051
执行时间是2022-05-26 11:08:03.663050
动物都要喝水,狗每次喝10L水
执行时间是2022-05-26 11:08:05.667317
动物都要喝水,狗每次喝10L水
执行时间是2022-05-26 11:08:07.671946
动物都要喝水,狗每次喝10L水
执行时间是2022-05-26 11:08:09.677413
动物都要喝水,狗每次喝10L水
执行时间是2022-05-26 11:08:11.686922
动物都要喝水,狗每次喝10L水

jielong.py

class GoodMessage(object):
    def __init__(self,name,age):
        self.name=name
        self.age=age
    def drink(self,vol):
        return "动物都要喝水,{}每次喝{}L水".format(self.name,10)

下面模拟jielong模块出错的问题

import  time
import psutil
import datetime,os
pause=psutil.Process(os.getpid())
from jielong import GoodMessage
msg=None
try:
	print("程序启动时间:",datetime.datetime.now())
    g=GoodMessage('狗',10)
    with open('drink.txt','w+',encoding='gbk') as f:
        msg=g.drink()
        f.write(msg)
except Exception as e:
    print("程序出异常了所以需要暂停当前进程ID是:{}".format(os.getpid()))
    pause.suspend()
with open('drink.txt','r+') as f:
    msg=f.read()
for i in range(5):
    print(f"执行时间是{datetime.datetime.now()}")
    print(msg)
    time.sleep(2)

可以看出程序已经hang住了

此时的drink.txt文件也已经为空了,这里可以把drink.txt当作保存处理结果的一个文档,因为异常了我们手动处理下这个文档,给这个里面加上如果程序没有异常正常返回的结果,生产环境可能是数据库保存这些数据,然后在读取

上面的进程ID是9016

我们可以在cmd窗口直接连接到这个进程,然后让程序启动起来

执行结果

程序启动时间: 2022-05-26 11:15:53.337709
程序出异常了所以需要暂停当前进程ID是:2868
执行时间是2022-05-26 11:17:39.144744
动物都要喝水,狗每次喝10L水
执行时间是2022-05-26 11:17:41.154257
动物都要喝水,狗每次喝10L水
执行时间是2022-05-26 11:17:43.167452
动物都要喝水,狗每次喝10L水
执行时间是2022-05-26 11:17:45.173947
动物都要喝水,狗每次喝10L水
执行时间是2022-05-26 11:17:47.183822
动物都要喝水,狗每次喝10L水

Process finished with exit code 0

可以看出来中断的程序的确可以继续运行下去

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • python json jsonl 的用法详解

    python json jsonl 的用法详解

    这篇文章主要介绍了python json jsonl 的用法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-08-08
  • Pandas实现groupby分组统计的实践

    Pandas实现groupby分组统计的实践

    本文主要介绍了Pandas实现groupby分组统计的实践,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01
  • Python获取浏览器窗口句柄过程解析

    Python获取浏览器窗口句柄过程解析

    这篇文章主要介绍了Python获取浏览器窗口句柄过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-07-07
  • 深入理解Python中的真值和假值概念

    深入理解Python中的真值和假值概念

    在 Python 中,真值和假值是布尔类型的两个唯一可能的值,本文将深入探讨 Python 中的真值和假值概念,帮助你更好地理解和运用它们,感兴趣的可以了解一下
    2023-11-11
  • Python多线程:主线程等待所有子线程结束代码

    Python多线程:主线程等待所有子线程结束代码

    这篇文章主要介绍了Python多线程:主线程等待所有子线程结束代码,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-04-04
  • 实例讲解Python中函数的调用与定义

    实例讲解Python中函数的调用与定义

    这篇文章主要介绍了Python中函数的调用与定义,是Python入门学习中的基础知识,需要的朋友可以参考下
    2016-03-03
  • git使用.gitignore设置不生效或不起作用问题的解决方法

    git使用.gitignore设置不生效或不起作用问题的解决方法

    下面小编就为大家带来一篇git使用.gitignore设置不生效或不起作用问题的解决方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-06-06
  • python集合常见运算案例解析

    python集合常见运算案例解析

    这篇文章主要介绍了python集合常见运算,结合具体实例形式分析了Python使用集合生成随机数的几种常用算法的效率比较,需要的朋友可以参考下
    2019-10-10
  • python日志模块logging案例详解

    python日志模块logging案例详解

    日志模块主要用于输出运行日志,可以设置输出日志的等级、日志保存路径、日志文件回滚等,这篇文章主要介绍了python日志模块logging,需要的朋友可以参考下
    2024-01-01
  • python脚本生成caffe train_list.txt的方法

    python脚本生成caffe train_list.txt的方法

    下面小编就为大家分享一篇python脚本生成caffe train_list.txt的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-04-04

最新评论