40 lines
1.2 KiB
Python
Executable File
40 lines
1.2 KiB
Python
Executable File
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()
|