import os from sys import argv def main(): path = argv[1] if len(argv) > 1 else os.getcwd() printFilesSize(path) def printFilesSize(path): try: directory = os.listdir(path) except FileNotFoundError: print(f"[Error] Unable to find that directory: '{os.path.abspath(path)}'") exit(1) except NotADirectoryError: print(f"[Error] Path is not a directory: '{os.path.abspath(path)}'") exit(1) else: print(f'|{"-" * 78}|') print(f'| {"File":<63} {"Size":>12} |\n|{"-" * 78}|') for file in directory: base_size = os.stat(f'{path}/{file}').st_size if os.path.isdir(f'{path}/{file}'): size = "-Directory-" elif base_size < 1024: size = str(base_size) + ' B' elif base_size < 1024 ** 2: size = f'{base_size // 1024}.{str(base_size % 1024)[0]} KB' elif base_size < 1024 ** 3: size = f'{base_size // (1024 ** 2)}.{str(base_size % (1024 ** 2))[0]} MB' else: size = f'{base_size // (1024 ** 3)}.{str(base_size % (1024 ** 3))[0]} GB' print(f'| {file:<63} {size:>12} |') print(f'|{"-" * 78}|') if __name__ == "__main__": main()