Advertisement
Guest User

functions

a guest
Oct 27th, 2016
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.24 KB | None | 0 0
  1. import os
  2. import string
  3.  
  4. def get_drives():
  5.     """
  6.    Gets all drives on the computer
  7.    :return:
  8.    """
  9.     return [c.upper()+":\\" for c in string.ascii_lowercase if os.path.isdir(c+':\\')]
  10.  
  11. def dir_getsize(directory):
  12.     """
  13.    Returns the size of all files within a directory (in bytes)
  14.    :param directory:
  15.    :return:
  16.    """
  17.     total_size = 0
  18.  
  19.     for file in (x for x in os.listdir(directory) if os.path.isfile(directory + "\\" + x)):
  20.         total_size += os.path.getsize(directory + "\\" + file)
  21.     return total_size
  22.  
  23.  
  24. def folder_size(dict, folder):
  25.     """
  26.    Returns the the total size, in bytes, of directory including each of it's sub-directories
  27.    :param dict:
  28.    :param folder:
  29.    :return:
  30.    """
  31.  
  32.     # # Debug code ---------
  33.     # print("DEBUG: Folder is", folder)
  34.     # print("DEBUG: dict contains:")
  35.     # for key in dict:
  36.     #     print ("DEBUG:", key, "=", dict[key])
  37.     # print()
  38.     # print("DEBUG:", [value for key, value in dict.items() if folder in key])
  39.     # #---------------------
  40.  
  41.     total_size = 0
  42.  
  43.     for size in [value for key, value in dict.items() if folder + "\\" in key + "\\"]:
  44.         total_size += size
  45.  
  46.     return total_size
  47.  
  48.  
  49. def formatbytes(number):
  50.     """
  51.    Takes a number if bytes and returns a string formatted with Bytes, KB, MB, GB
  52.    :param number:
  53.    :return:
  54.    """
  55.     if number < 1024:
  56.         return '{:,.1f}'.format(number) + " Bytes"
  57.     elif number < 1024**2:
  58.         return '{:,.1f}'.format(number/1024) + " KB"
  59.     elif number <= 1024**3:
  60.         return '{:,.1f}'.format(number/1024**2) + " MB"
  61.     elif number > 1024**3:
  62.         return '{:,.1f}'.format(number/1024**3) + " GB"
  63.     else:
  64.         return str(number)
  65.  
  66. def return_dirs(path):
  67.     """
  68.    Returns a list of directories
  69.    :param path:
  70.    :return:
  71.    """
  72.     dirs = []
  73.     for dir in os.listdir(path):
  74.         if os.path.isdir(path + "\\" + dir):
  75.             dirs.append(dir)
  76.     return dirs
  77.  
  78. def print_dirs():
  79.     """
  80.    Prints sub directories to screen with index
  81.    :return:
  82.    """
  83.     print()
  84.     print("Current directory:", os.getcwd())
  85.     print()
  86.     for i, dir in enumerate(return_dirs(os.getcwd())):
  87.         print(str(i) + ")", dir)
  88.     print()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement