Python stat() — это встроенный модуль OS, который имеет два метода, которые возвращают размер файла. Модуль OS в Python предоставляет функции для взаимодействия с операционной системой. Он входит в стандартные служебные модули Python. Модуль os обеспечивает портативный подход к использованию функций, зависящих от операционной системы.
Получение размера файла в Python
Чтобы получить размер файла в Python, мы можем использовать один из следующих трех способов:
- Python os.path.getsize()
- Python os.stat()
- Python path.stat().st_mode.
Python os.path.getsize()
Функция os.path.getsize() возвращает размер в байтах. Вызовет OSError, если файл не существует или недоступен.
См. следующий код.
|
1 2 3 4 5 6 7 8 |
import os file_name = "npfile.txt" file_size = os.path.getsize(file_name) print(f'File Size in Bytes is {file_size}') print(f'File Size in MegaBytes is {file_size /(1024 * 1024)}') |
Выход:
|
1 2 |
File Size in Bytes is 42 File Size in MegaBytes is 4.00543212890625e-05 |
Сначала мы определили файл, а затем получили его размер с помощью функции os.path.getsize(), которая возвращает размер файла в байтах, а затем в последней строке мы преобразовали размер в байтах в размер в МБ.
Python os.stat()
Метод os.stat() в Python выполняет системный вызов stat() по указанному пути. Метод stat() используется для получения статуса указанного пути. Затем мы можем получить его атрибут st_size, чтобы получить размер файла в байтах. Метод stat() принимает в качестве аргумента имя файла и возвращает кортеж, содержащий информацию о файле.
|
1 2 3 4 5 6 7 8 9 |
import os file_name = "npfile.txt" file_stats = os.stat(file_name) print(file_stats) print(f'File Size in Bytes is {file_stats.st_size}') print(f'File Size in MegaBytes is {file_stats.st_size /(1024 * 1024)}') |
Выход:
|
1 2 3 4 5 6 |
os.stat_result(st_mode=33188, st_ino=75203319, st_dev=16777220, st_nlink=1, st_uid=501, st_gid=20, st_size=42, st_atime=1589517754, st_mtime=1589517753, st_ctime=1589517753) File Size in Bytes is 42 File Size in MegaBytes is 4.00543212890625e-05 |
Из вывода вы можете видеть, что мы получили кортеж, полный информации о файле. Затем мы получили доступ к определенному свойству, называемому st_size, чтобы получить размер файла, а затем преобразовать размер в МБ или мегабайты.
Если вы внимательно посмотрите на метод stat(), мы можем передать еще два параметра: dir_fd и follow_symlinks. Однако они не реализованы для macOS.
Python path.stat().st_mode
Функция Python path.stat() возвращает объект os.stat_result, содержащий информацию об этом пути, подобно os.stat(). Результат просматривается при каждом вызове этого метода.
См. следующий код.
|
1 2 3 4 5 6 7 8 |
from pathlib import Path file_name = "npfile.txt" file_size = Path(file_name).stat().st_size print(f'File Size in Bytes is {file_size}') print(f'File Size in MegaBytes is {file_size /(1024 * 1024)}') |
Выход:
|
1 2 |
File Size in Bytes is 42 File Size in MegaBytes is 4.00543212890625e-05 |
Мы импортировали модуль pathlib и использовали Path.state().st_size для получения размера файла.
Итак, мы рассмотрели 3 метода, как узнать размер файла в Python.

