戳人痛处

导航

[记]一些常用函数(python)

[1]:控制台与时间

class InThreadTime(): 
    @staticmethod
    def GetTimeStr():
        '''
        返回日期字符串 如211103_161722
        '''
        return time.strftime("%y年%m月%d日_%H%M%S", time.localtime())
    @staticmethod
    def GetTimefloat():
        '''
        返回当前时间(s)
        '''
        return time.time()
    @staticmethod
    def FloatTimeToStr(time_sum:float):
        return time.strftime("%M-%S",time.localtime(time_sum))
    @staticmethod
    def Sleep(time_s:float,key:list=[False]):
        '''
        key为真退出
        返回True 为失败退出
        
        '''
        for idx in range(0,int(time_s)):
            time.sleep(1)
            if(key[0]):
                return True
            print("[InThreadTime-Sleep]:{}".format(idx))
        time.sleep(time_s-int(time_s))
        return False
    @staticmethod
    def cmd_deal_real_time_show(cmd:str,logprint=print):
        '''
        Log打印回调接口 参数str,命令执行成功返回0,执行失败返回1
        '''
        xe = subprocess.Popen(cmd,stdout=subprocess.PIPE,shell=True)
        while True:
            rt_data = xe.stdout.readline().decode("GBK")
            if rt_data!="":
                if logprint==print:
                    logprint(rt_data,end="")

                else:
                    logprint(rt_data)
            else:
                break
        return xe.wait()#执行成功返回0,执行失败返回1
    @staticmethod
    def cmd_deal_not_real_time_show(cmd:str):
        '''
        返回(0,str)执行成功,返回(1,str)执行失败
        '''
        xe = subprocess.run(cmd,stdout=subprocess.PIPE)
        return (xe.returncode,xe.stdout.decode("gbk"))
    @staticmethod
    def iperf3_json_get_bandwitdh(data:str):
        data_obj = json.loads(data)
        return data_obj["end"]["sum_received"]["bits_per_second"]

 

posted on 2022-07-19 16:08  戳人痛处  阅读(28)  评论(0编辑  收藏  举报