• 个人简介

    重型维修小组</p>

    import time
    import msvcrt
    import threading
    import random
    import logging as log
    import base64 as b64
    try:
        import log__init__
        log__init__.__init__()
        log.debug('log__init__ online')
    except ModuleNotFoundError:
        log.warning('log__init__ offline',exc_info=False)
    def PNG_B64(target="target.png",output="op.txt"):
        '''
    png文件转Base64,主体代码参考stu231311(感谢开源)
    指定target,output来控制输入图片路径与输出
    默认输入:target.png 默认输出:op.txt'''
        try:
            with open(target, "rb") as f:
                img_data = f.read()
            b64_bytes = b64.b64encode(img_data)
            b64_str = b64_bytes.decode('utf-8')
            with open(output,"w") as f:
                f.write("data:image/png;base64,"+b64_str)
            print(f"转换完成! 输出文件:{output}")
        except FileNotFoundError as err:
            log.error(f"未找到目标文件! {target}",exc_info=0)
    def tprint(target:str='',sep:int|float=0.1) -> int|float|str:
        '''
    按时间逐字打印,输入包括string(str),sec(int,float)
    '''
        for i in target:
            print(i,end='',flush=True)
            time.sleep(sep)
        print()
    def wait_for_kb(sep:int|float=0.25) -> int|float:
        '''
    press any key to continue(no return)
    don't use thorny to run this code
    '''
        que=['-','\\','|','/']
        j=0
        while not msvcrt.kbhit():
            j=(j+1)%4
            time.sleep(sep)
            print('\r'+que[j],end='',flush=True)
        print('\r'+'')
    def docseeker():
        '''
    用于输出当前自定义函数的所有注释(no return)
    '''
        a=globals()
        for name in a:
            if callable(a[name]) and a[name].__module__==__name__:
                print('='*20+str(name)+'='*20)
                print(a[name].__doc__)
    def sonar(direction:str='N') -> list|str:
        mid=2
        while not msvcrt.kbhit():
            data=[[' ' for i in range(10)]for j in range(5)]
            wave=noise()
            for i in range(len(wave)):
                data[mid+wave[i]][i]='_'
            for i in data:
                print(*i,end='\n')
            print()
            time.sleep(1)
    def noise(strength:float=0.7) -> float:
        wave=[random.randint(-2,2) for i in range(10)]
        for i in range(len(wave)):
            if random.random()<strength:
                wave[i]=0
        return wave
    sonar()
    
    import time
    import logging as log
    '''MODULE logging's basic setting'''
    def __init__():
        global logger,file_handler,console_handler,formatter
        lt=time.localtime()
        #create log recorder
        logger=log.getLogger()
        logger.setLevel(log.DEBUG)
        #create file handler
        file_handler=log.FileHandler(f"LogOutput{lt.tm_year}_{lt.tm_mon}_{lt.tm_mday}_{lt.tm_hour}.log")
        file_handler.setLevel(log.DEBUG)
        #create console handler
        console_handler=log.StreamHandler()
        console_handler.setLevel(log.DEBUG)
        #format
        formatter=log.Formatter('%(asctime)s - %(name)s - %(funcName)s - %(levelname)s - %(message)s')
        file_handler.setFormatter(formatter)
        console_handler.setFormatter(formatter)
        #add handlers to log recorder
        logger.addHandler(file_handler)
        logger.addHandler(console_handler)
    if __name__ == '__main__':
        __init__()
    

  • 最近活动

    This person is lazy and didn't join any contests or homework.