晚安orchid

2019-05-09  本文已影响0人  kkjusdoit

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

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点,媳妇儿找不到又着急,故欲言又止。
预知后事,下次再说

上一篇 下一篇

猜你喜欢

热点阅读