Как получить размер файла с помощью Python?
avatar
7 | (offline)
❤️‍🔥Notehunter Developer
Добавлено:
Категория: Руководства «Python»
Комментариев: 0

В этом руководстве по 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')
Теги записи: Python, Основы Python, os, pathlib, Размер,
Комментарии к статье 0
Комментариев нет
Форма добавления комментария (необходима регистрация)