Размер файла в 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: выводится размер файла в байтах и мегабайтах](https://pythonturbo.ru/wp-content/uploads/2023/01/output-5-1024x513.png)
![Рабочее окно редактора кода с результатом работы функции stat: выводится размер файла в байтах и мегабайтах](https://pythonturbo.ru/wp-content/uploads/2023/01/output-5-1024x513.png)
В функцию 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
![Окно текстового редактора с выводом ошибки](https://pythonturbo.ru/wp-content/uploads/2023/01/output-6-1024x522.png)
![Окно текстового редактора с выводом ошибки](https://pythonturbo.ru/wp-content/uploads/2023/01/output-6-1024x522.png)
Примечание редакции: о том, что собой представляют ошибки, можно почитать в статье “Ошибки и исключения в Python”.
Перевод статьи Pankaj «How to Get File Size in Python».