30.12.2017 г.

Calculate size of folder with python scripts only folder not RAR

#Import module
import os
import sys

class InFolder:

    def __init__(self, folder):
        self.folder = folder

    def search(self):
        founded = set()
        for root, dirname, filename in os.walk(self.folder):
            clean_root = os.path.normpath(root)
            clear_root_name = os.path.normcase(clean_root)
            founded.add(clear_root_name)
        founded.remove(self.folder)
        return founded


if len(sys.argv) == 1:
        print("Try again with add path to scan!")
        sys.exit('Usage: python %s path-name' % sys.argv[0])
elif not os.path.exists(sys.argv[1]):
    print("Try again with add path to scan!")
    sys.exit('Usage: python %s and corect file name (example c:\\)' % sys.argv[0])
    sys.exit()
else:
    my_project = InFolder(sys.argv[1])
    clear_folder = my_project.search()


class Second:

    def __init__(self, path2):
        self.path2 = path2

    def calculate_size(self):
        my_calc = dict()
        size = 0
        for root, dirname, filename in os.walk(self.path2):
            for file in filename:
                f_path = os.path.join(root, file)
                size += os.path.getsize(f_path)
            my_calc[self.path2] = (size/1024)/1024
        return my_calc


total = dict()

for f in clear_folder:
    main = Second(f)
    for i, v in main.calculate_size().items():
        total[i] = v

for line in sorted(total.items(), key=lambda x: x[1]):
    print('{0:>10} - {1:.2f}Mb'.format(*line))

Няма коментари :

Публикуване на коментар