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()
    

      

  • 相关阅读:
    【002】有符号数据传递给无符号变量
    C++第二课 数据类型和常变量
    【001】冒泡排序
    iOS中为网站添加图标到主屏幕以及增加启动画面
    _stdcall,_cdecl区别
    解决表格里面使用text-overflow后依旧不能隐藏超出的文本
    windows7 64位下运行 regsvr32 注册ocx或者dll的方法
    在sqlite中使用索引
    ASP中 Request.Form中文乱码的解决方法
    html——标签基础
  • 原文地址:https://www.cnblogs.com/andy9468/p/13743546.html
Copyright © 2011-2022 走看看