zoukankan      html  css  js  c++  java
  • 回复网友的代码准备:双击python

    import os
    import logging
    import time
    from multiprocessing import Process
    
    # ========增加代码--开始========
    def produce_stop_bat(pid, tmpfile="stop_xxx.bat"):
        '''
        生成kill指定进程的脚本文件*.bat
        :param pid:
        :param tmpfile:
        :return:
        '''
        # 待写入内容
        stop_cmd = 'taskkill /pid ' + str(pid) + ' /f'  # 关闭指定进程
        del_self_cmd = "del %0"  # 删除自身文件
        # 文件路径和名称
        tmp_all = "stop_" + tmpfile + ".bat"
        # 写入文件
        with open(file=tmp_all, mode="w") as f:
            f.write(stop_cmd + "
    " + del_self_cmd)
    
    
    def getpid_for_kill():
        '''
        获取当前进程号PID,并生成kill当前进程的脚本文件*.bat
        :return:
        '''
        # 进程号
        pid = os.getpid()
        # 本文件名(不含后缀.py)
        myfilename = os.path.split(__file__)[-1].split(".")[0]
        # 生成关闭进程的脚本文件
        produce_stop_bat(pid, myfilename)
    
    
    # ========增加代码--结束========
    
    
    def do_log_activity(name):
        '''
        做日志生成活动
        :return:
        '''
        # 如果日志文件夹不存在,则创建
        log_dir = "log"  # 日志存放文件夹名称
        log_path = os.getcwd() + os.sep + log_dir
        if not os.path.isdir(log_path):
            os.makedirs(log_path)
    
        # 设置logging
        logger = logging.getLogger()
        logger.setLevel(logging.DEBUG)
        main_log_handler = logging.FileHandler(
            log_dir + "/dd_%s.log" % time.strftime("%Y-%m-%d_%H-%M-%S", time.localtime(time.time())), mode="w+",
            encoding="utf-8")
        main_log_handler.setLevel(logging.DEBUG)
        formatter = logging.Formatter("%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s")
        main_log_handler.setFormatter(formatter)
        logger.addHandler(main_log_handler)
        # 控制台打印输出日志
        console = logging.StreamHandler()  # 定义一个StreamHandler,将INFO级别或更高的日志信息打印到标准错误,并将其添加到当前的日志处理对象
        console.setLevel(logging.INFO)  # 设置要打印日志的等级,低于这一等级,不会打印
        formatter = logging.Formatter("%(asctime)s - %(levelname)s: %(message)s")
        console.setFormatter(formatter)
        logging.getLogger('').addHandler(console)
    
        # 循环生成日志信息
        while True:
            time_stamp = time.time()
            # print("时间戳",time_stamp)
            logger.info("时间戳 %s" % time_stamp)
            logger.info('%s runing' % name)
            sec = 3
            logger.info("睡眠 %s 秒" % sec)
            time.sleep(sec)
    
    # 启动函数
    def run(name):
        # 获取当前进程号PID,并生成kill当前进程的脚本文件*.bat
        getpid_for_kill()
        # 启动日志生成活动
        do_log_activity(name)
    
    
    if __name__ == '__main__':
        p1 = Process(target=run, args=("run_fun",), name="p1-进程")
        p1.start()
        # run()
    

      

  • 相关阅读:
    第一节:SpringMVC概述
    SpringMVC【目录】
    Windows 系统快速查看文件MD5
    (error) ERR wrong number of arguments for 'hmset' command
    hive使用遇到的问题 cannot recognize input
    Overleaf支持的部分中文字体预览
    Understanding and Improving Fast Adversarial Training
    Django2实战示例 第十三章 上线
    Django2实战示例 第十二章 创建API
    Django2实战示例 第十一章 渲染和缓存课程内容
  • 原文地址:https://www.cnblogs.com/andy9468/p/13743546.html
Copyright © 2011-2022 走看看