Размер файла в Python можно получить с помощью модуля os. В этом модуле есть функция stat(), которой мы можем передать имя файла в качестве аргумента. Эта функция возвращает кортежную структуру, содержащую информацию о файле. Обратившись к свойству st_size, мы можем узнать размер файла в байтах. Вот простая программа для печати размера файла в байтах и мегабайтах:
Скачивайте книги ТОЛЬКО на русском языке у нас в телеграм канале: PythonBooksRU
import os
file_name = "/Users/pankaj/abcdef.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)}')
Вывод:


В функцию stat() можно передать еще два аргумента: dir_fd и follow_symlinks. Однако они не реализованы для Mac OS. Вот обновленная программа, в которой я пытаюсь использовать относительный путь, но она выдает ошибку NotImplementedError:
import os
file_name = "abcdef.txt"
relative_path = os.open("/Users/pankaj", os.O_RDONLY)
file_stats = os.stat(file_name, dir_fd=relative_path)
Вывод:
Traceback (most recent call last):
File "/Users/pankaj/.../get_file_size.py", line 7, in
file_stats = os.stat(file_name, dir_fd=relative_path)
NotImplementedError: dir_fd unavailable on this platform


Примечание редакции: о том, что собой представляют ошибки, можно почитать в статье «Ошибки и исключения в Python».
Перевод статьи Pankaj «How to Get File Size in Python».
