欢迎来到Felix的博客

Do the right things! And talk is cheap,show me your code!

获取文件md5,输出进度条,列出所有文件,获取文件夹内部文件总大小

import hashlib
import os

# 获取文件md5值
def getFileMd5(filename):
    if not os.path.isfile(filename):
        return
    myhash = hashlib.md5()
    with open(filename, 'rb')as f:
        while True:
            b = f.read(8096)
            if not b:
                break
            myhash.update(b)
    return myhash.hexdigest()


def print_progress_bar(description, iteration_counter, total_items, progress_bar_length=20):
    """
    输出进度条程序
    """
    import sys

    percent = float(iteration_counter) / total_items
    hashes = '>' * int(round(percent * progress_bar_length))
    spaces = ' ' * (progress_bar_length - len(hashes))
    sys.stdout.write("\r{0}: [{1}] {2}%".format(description, hashes + spaces, int(round(percent * 100))))
    sys.stdout.flush()
    if total_items == iteration_counter:
        print("\r")


# 列出某路径下所有文件
def listdirs(f, i=1, dirs=None):
    if dirs is None:
        dirs = []
    fs = os.listdir(f)
    for f1 in fs:
        tmp_path = os.path.join(f, f1)
        if not os.path.isdir(tmp_path):
            dirs.append('-' * i + str(tmp_path.split(r'/')[-1]))
        else:
            dirs.append('-' * i + str(tmp_path.split(r'/')[-1]))
            listdirs(tmp_path, i + 2, dirs=dirs)
    return dirs


import os
import os.path

# 获取某个目录下所有文件大小
def get_total_size(path, list1=None):
    if list1 is None:
        list1 = []
    fileList = os.listdir(path)  # 获取path目录下所有文件
    for filename in fileList:
        pathTmp = os.path.join(path, filename)  # 获取path与filename组合后的路径
        if os.path.isdir(pathTmp):  # 判断是否为目录
            get_total_size(pathTmp, list1)  # 是目录就继续递归查找
        elif os.path.isfile(pathTmp):  # 判断是否为文件
            filesize = os.path.getsize(pathTmp)  # 如果是文件,则获取相应文件的大小
            # print('目录中的子文件大小:%d字节' % filesize)
            list1.append(filesize)  # 将文件的大小添加到列表
    return sum(list1)

 

posted @ 2018-10-21 16:56  寂静的天空  阅读(522)  评论(0)    收藏  举报
个人感悟: 一个人最好的镜子就是自己,你眼中的你和别人眼中的你,不是一回事。有人夸你,别信;有人骂你,别听。一根稻草,扔街上就是垃圾;捆上白菜就是白菜价;捆上大闸蟹就是大闸蟹的价。 一个人,不狂是没有出息的,但一直狂,肯定是没有出息的。雨打残花风卷流云,剑影刀光闪过后,你满脸冷酷的站在珠峰顶端,傲视苍生无比英武,此时我问你:你怎么下去? 改变自己就是改变自己的心态,该沉的时候沉下去,该浮的时候浮上来;不争名夺利,不投机取巧,不尔虞我诈;少说、多听、多行动。人每所谓穷通寿夭为命所系,岂不知造物之报施,全视人之自取。 座佑铭:每一个不曾起舞的日子,都是对生命的辜负。