Логический размер файла в Python получают через os.path.getsize(path) или Path(path).stat().st_size — в байтах. Он может отличаться от фактически выделенного места на диске, например у sparse-файла.
Как получить размер файла на диске?
Логический размер файла в Python получают через os.path.getsize(path) или Path(path).stat().st_size — в байтах. Он может отличаться от фактически выделенного места на диске, например у sparse-файла.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Логический размер файла в Python получают через os.path.getsize(path) или Path(path).stat().st_size — в байтах. Он может отличаться от фактически выделенного места на диске, например у sparse-файла.
Пример:
from pathlib import Path
size_bytes = Path('data.bin').stat().st_size
Для занятого пространства на Unix используют информацию о выделенных блоках, когда она доступна, или утилиты файловой системы. Сжатие, hard links и sparse-области усложняют подсчёт. Между проверкой пути и чтением файл может измениться; для уже открытого файла можно использовать fstat его дескриптора. Размер каталога не равен сумме размеров вложенных файлов.