В этом руководстве по Python, мы узнаем как нам получить размер файла с помощью некоторых встроенных способов с использованием библиотек os, pathlib. А также преобразуем получаемый значения в удобочитаемые форматы.
Способы с помощью модуля os:
Синтаксис:
import os
os.path.getsize('path_to_file')
Пример использования метода getsize()
:
import os
file_size = os.path.getsize(r'C:\Users\Razilator\Desktop\Projects\Coding\articles\get_file_size\dockerPostgresql.txt')
print(f'Размер файла: {file_size} байтов')
Результат использования метода getsize()
:
>>> Размер файла: 2244 байтов
Использование метода os.stat().st_size
:
Синтаксис:
import os
os.stat('path_to_file').st_size
Пример использования метода os.stat().st_size
:
import os
file_size = os.stat(r'C:\Users\Razilator\Desktop\Projects\Coding\articles\get_file_size\dockerPostgresql.txt').st_size
print(f'Размер файла: {file_size} байтов')
Результат использования метода os.stat().st_size
:
>>> Размер файла: 2244 байтов
Способ с помощью модуля pathlib, работает в Python 3.4+
Синтаксис:
from pathlib import Path
Path('path_to_file').stat().st_size
Пример использования метода Path().stat().st_size
:
from pathlib import Path
file_size = Path(r'C:\Users\Razilator\Desktop\Projects\Coding\articles\get_file_size\dockerPostgresql.txt').stat().st_size
print(f'Размер файла: {file_size} байтов')
Результат использования метода Path().stat().st_size
:
>>> Размер файла: 2244 байтов
Преобразование:
Интересное небольшое решение нашел на просторах stackoverflow от автора Pietro Battiston:
def format_bytes(size):
power = 2**10
n = 0
power_labels = {0: '', 1: 'kilo', 2: 'mega', 3: 'giga', 4: 'tera'}
while size > power:
size /= power
n += 1
return size, power_labels[n]+'bytes'
Также можете посмотреть и другие методы
Применение функции:
from pathlib import Path
file_size = Path(r'C:\Users\Razilator\Desktop\Projects\Coding\articles\get_file_size\dockerPostgresql.txt').stat().st_size
def format_bytes(size):
power = 2**10
n = 0
power_labels = {0: '', 1: 'kilo', 2: 'mega', 3: 'giga', 4: 'tera'}
while size > power:
size /= power
n += 1
return size, power_labels[n]+'bytes'
print(f'Размер файла: {format_bytes(file_size)}')
Результат:
>>> Размер файла: (2.19140625, 'kilobytes')