美文网首页
晚安orchid

晚安orchid

作者: kkjusdoit | 来源:发表于2019-05-09 23:09 被阅读0次

    还有半个小时,说好的要再复盘一下今天的代码——文件去重,恐怕来不及详细啦。
    凭印象还能记住知识点,主要思路是:

    md5值判断两个文件是否相同,相同的话用os.remove()去重
    其他的

    那就再读一遍吧!

    import os
    import hashlib
    import logging
    import sys
    
    def logger():
        """get logger"""
        logger = logging.getLogger()
        if not logger.handlers:
            #指定log输出格式:时间、级别、消息内容
            formatter = logging.Formatter('%(asctime)s %(levelname) -8s:%(message)s')
            #log文件
            file_handler = logging.FileHandler('test.log')
            file_handler.setFormatter(formatter) #designate the output format by setFormatter
            #log控制台
            console_handler = logging.StreamHandler(sys.stdout)
            console_handler.formatter = formatter
            #加一个log处理
            logger.addHandler(file_handler)
            logger.addHandler(console_handler)
            #指定log级别,INFO
            logger.setLevel(logging.INFO)
        return logger
    
    def get_md5(filename):
        m = hashlib.md5()
        mfile = open(filename, 'rb')
        m.update(mfile.read())
        mfile.close()
        md5_value = m.hexdigest()
        return md5_value
    
    def get_urllist(base, file_list, dir_list):  #根目录,文件列表,文件夹列表
        dir_or_files = os.listdir(base)          
        #获取根目录base下所有文件和文件夹
        for dir_file in dir_or_files:
            dir_file_path = os.path.join(base, dir_file)   #完整路径
            if os.path.isdir(dir_file_path):                       #判断是否为文件夹?
                dir_list.append(dir_file_path)                      
            #递归获取所有文件和目录的路径
                get_urllist(dir_file_path, file_list, dir_list)   
            else:
                file_list.append(dir_file_path)
        return file_list
    
    
    
    
    if __name__ == '__main__':
        log = logger()
        md5List = []
        base = (r'D:\delete_same')
        file_list = []
        dir_list = []
        urlList = get_urllist(base,file_list,dir_list)
        print(urlList)
        for a in urlList:
            md5 = get_md5(a)
            if (md5 in md5List):
                os.remove(a)
                print('repeat file: %s'%a)
                log.info('repeat file: %s'%a)
            else:
                md5List.append(md5)
                print('altogether are %s pieces of files'%len(md5List))
    

    好啦,走马观花就到这里。

    继续叙事

    苦中作乐,不以为然,把进步当成一种习惯

    曾经我也蠢蠢欲动,打算每日1000字,持续输出,什么倒逼自己换取进步啦。
    当然只是想想,未付诸实践。
    偶尔心血来潮碎碎念,比如此时。
    简书创作你的创作,比微信公众号友好,不用繁琐的登录,又内嵌Markdown便于排版。
    马上又一周过完,比较充实,尤其是编程方面,生活学习比较规律,自律性较为改善,除了工作还是有些消极。
    喜欢一个东西,不要轻易说喜欢,为了避免浅尝辄止,因为尝到了点甜头,哪知道未来艰难险阻,不计其数。
    所以,默默坚持,无名时练剑,熬过笨拙期,熬过入门,熬过成长,熬到小有成就——具备谋生计的能力。
    那才证明是真的喜欢,发自内心的热爱,岂不快哉!
    人生几何,谁能找到自己所爱之事,把兴趣当成工作?
    多学习,多进步,别无他路,唯有成长。

    及时调整自己,be happy, be positive

    我的身体状态感觉不适,因为这几天连续久坐,缺乏运动,轻微腰部不适,于是约人打球,酣战1个小时。
    今天的手感、状态还不错,连胜三局,大汗淋漓,神清目明,如满血复活。
    运动真是一剂良药,忧烦郁闷之时,来一场sport吧,让全身每个细胞活跃起来,心情、状态也多云转晴,善哉!

    沉浸式写作

    这个简书全屏创作,连时间都看不到,让人忍不住有一直写下去的欲望,然而担心现在已经过11点,媳妇儿找不到又着急,故欲言又止。
    预知后事,下次再说

    相关文章

      网友评论

          本文标题:晚安orchid

          本文链接:https://www.haomeiwen.com/subject/syrnoqtx.html