Теперь Кью работает в режиме чтения

Мы сохранили весь контент, но добавить что-то новое уже нельзя

Как в работающий скрипт добавить размеры папок и файлов в каталоге?

Во рабочий скрипт:
import os
path = 'E:\Мой Python\__Видеокурсы Python'
rez = sorted(os.listdir(path))
with open("out_ok.txt", "w") as file:
for n, item in enumerate(rez):
file.write(f"{n + 1} {item}\n")
print('Список файлов смотрим здесь - out_ok.txt ')
# поиск перечня файлов в папке и запись списка в out_ok.txt
Как в этот скрипт добавить возможность видеть размер каждой папки и файла в каталоге (в Мб)?
PythonСкриптыPython 3
Александр Марков
Python Q
  · 2,2 K
Для добавления возможности видеть размер каждой папки и файла в каталоге, вы можете использовать функции
os.path.getsize()
и
os.path.join()
модуля
os
Вот модифицированный вариант вашего скрипта с добавленными размерами папок и файлов:
import os

def get_size(path):
    total_size = 0
    if os.path.isfile(path):
        total_size = os.path.getsize(path)
    else:
        for dirpath, dirnames, filenames in os.walk(path):
            for filename in filenames:
                file_path = os.path.join(dirpath, filename)
                total_size += os.path.getsize(file_path)
    return total_size / (1024 * 1024)  # Переводим размер в Мб

path = 'E:\Мой Python\__Видеокурсы Python'
rez = sorted(os.listdir(path))

with open("out_ok.txt", "w") as file:
    for n, item in enumerate(rez):
        item_path = os.path.join(path, item)
        size = get_size(item_path)
        file.write(f"{n + 1} {item} ({size:.2f} Мб)\n")
        
print('Список файлов смотрим здесь - out_ok.txt')
В этом обновленном скрипте добавлена функция
get_size()
 которая вычисляет размер папки или файла. Она использует функции
os.path.getsize()
для получения размера файла и
os.walk()
для обхода всех файлов в папке и подпапках.
В результате каждая строка списка файлов в файле "out_ok.txt" будет содержать имя файла или папки, а также его размер в Мб. Размер файла будет вычисляться с помощью функции
get_size()
и добавляться к строке вывода.
Обратите внимание, что размеры папок будут включать размеры всех файлов внутри них.