Узнать длину файла питон

Получить размер файла в Python

В этом посте мы обсудим, как получить размер файла в Python.

1. Использование os.stat() функция

Стандартным решением для получения статуса файла является использование os.stat() Функция Python. Он возвращает stat_result объект, который имеет st_size атрибут, содержащий размер файла в байтах.

2. Использование Path.stat() функция

В качестве альтернативы с Python 3.4 вы можете использовать Path.stat() функция от pathlib модуль. Это похоже на os.stat() функция и возвращает stat_result объект, содержащий информацию об указанном пути.

3. Использование os.path.getsize() функция

Еще один хороший вариант — использовать os.path.getsize() функция для получения размера указанного пути в байтах.

4. Использование seek() функция

Здесь идея состоит в том, чтобы открыть файл в режиме только для чтения и установить в конце текущую позицию файлового дескриптора. Это можно сделать с помощью seek() функция, которая возвращает текущую позицию курсора в байтах, начиная с начала.

Читайте также:  Place element in center css

Это все, что касается получения размера файла в Python.

Средний рейтинг 4.79 /5. Подсчет голосов: 29

Голосов пока нет! Будьте первым, кто оценит этот пост.

Сожалеем, что этот пост не оказался для вас полезным!

Расскажите, как мы можем улучшить этот пост?

Спасибо за чтение.

Пожалуйста, используйте наш онлайн-компилятор размещать код в комментариях, используя C, C++, Java, Python, JavaScript, C#, PHP и многие другие популярные языки программирования.

Как мы? Порекомендуйте нас своим друзьям и помогите нам расти. Удачного кодирования 🙂

Этот веб-сайт использует файлы cookie. Используя этот сайт, вы соглашаетесь с использованием файлов cookie, нашей политикой, условиями авторского права и другими условиями. Читайте наши Политика конфиденциальности. Понятно

Источник

3 способа получить размер файла в Python

Python stat() — это встроенный модуль OS , который имеет два метода, которые возвращают размер файла. Модуль OS в Python предоставляет функции для взаимодействия с операционной системой. Он входит в стандартные служебные модули Python. Модуль os обеспечивает портативный подход к использованию функций, зависящих от операционной системы.

Получение размера файла в Python

Чтобы получить размер файла в Python, мы можем использовать один из следующих трех способов:

Как получить размер файла в Python

Python os.path.getsize()

Функция os.path.getsize() возвращает размер в байтах. Вызовет OSError, если файл не существует или недоступен.

Сначала мы определили файл, а затем получили его размер с помощью функции os.path.getsize(), которая возвращает размер файла в байтах, а затем в последней строке мы преобразовали размер в байтах в размер в МБ.

Python os.stat()

Метод os.stat() в Python выполняет системный вызов stat() по указанному пути. Метод stat() используется для получения статуса указанного пути. Затем мы можем получить его атрибут st_size, чтобы получить размер файла в байтах. Метод stat() принимает в качестве аргумента имя файла и возвращает кортеж, содержащий информацию о файле.

Из вывода вы можете видеть, что мы получили кортеж, полный информации о файле. Затем мы получили доступ к определенному свойству, называемому st_size, чтобы получить размер файла, а затем преобразовать размер в МБ или мегабайты.

Если вы внимательно посмотрите на метод stat(), мы можем передать еще два параметра: dir_fd и follow_symlinks. Однако они не реализованы для macOS.

Python path.stat().st_mode

Функция Python path.stat() возвращает объект os.stat_result, содержащий информацию об этом пути, подобно os.stat(). Результат просматривается при каждом вызове этого метода.

Источник

Python: Get file size in KB, MB or GB – human-readable format

In this article, we will discuss different ways to get file size in human-readable formats like Bytes, Kilobytes (KB), MegaBytes (MB), GigaBytes(GB) etc.

Different ways to get file size in Bytes

Get file size in bytes using os.path.getsize()

It accepts the file path as an argument and returns the size of a file at the given path in bytes.
If the file doesn’t exist at the given path or it is inaccessible, then it raises an os.error. Therefore, always check that file exist or not before calling this function.

Let’s use this function to get the size of a file in bytes,

import os def get_file_size_in_bytes(file_path): """ Get size of file at given path in bytes""" size = os.path.getsize(file_path) return size file_path = 'big_file.csv' size = get_file_size_in_bytes(file_path) print('File size in bytes : ', size)

Frequently Asked:

File size in bytes : 166908268

Get file size in bytes using os.stat().st_size

Python’s os module provides a function to get the file statistics,

os.stat(path, *, dir_fd=None, follow_symlinks=True)

It accepts file path (a string) as an argument and returns an object of the structure stat, which contains various attributes about the file at a given path. One of the attributes is st_size, which has the size of the file in bytes.

Let’s use this function to get the size of a file in bytes,

import os def get_file_size_in_bytes_2(file_path): """ Get size of file at given path in bytes""" # get statistics of the file stat_info = os.stat(file_path) # get size of file in bytes size = stat_info.st_size return size file_path = 'big_file.csv' size = get_file_size_in_bytes_2(file_path) print('File size in bytes : ', size)
File size in bytes : 166908268

Get file size in bytes using pathlib.Path.stat().st_size

Let’s use pathlib module to get the size of a file in bytes,

from pathlib import Path def get_file_size_in_bytes_3(file_path): """ Get size of file at given path in bytes""" # get file object file_obj = Path(file_path) # Get file size from stat object of file size = file_obj.stat().st_size return size file_path = 'big_file.csv' size = get_file_size_in_bytes_3(file_path) print('File size in bytes : ', size)
File size in bytes : 166908268

In all the above techniques, we got the file size in bytes. What if we want file size in human-readable format like, KilloBytes, Megabytes or GigaBytes etc.

Get file size in human-readable units like kilobytes (KB), Megabytes (MB) or GigaBytes (GB)

1 KilloByte == 1024 Bytes
1 Megabyte == 1024*1024 Bytes
1 GigaByte == 1024*1024*1024 Bytes

We have created a function to convert the bytes into kilobytes (KB), Megabytes (MB) or GigaBytes (GB) i.e.

import enum # Enum for size units class SIZE_UNIT(enum.Enum): BYTES = 1 KB = 2 MB = 3 GB = 4 def convert_unit(size_in_bytes, unit): """ Convert the size from bytes to other units like KB, MB or GB""" if unit == SIZE_UNIT.KB: return size_in_bytes/1024 elif unit == SIZE_UNIT.MB: return size_in_bytes/(1024*1024) elif unit == SIZE_UNIT.GB: return size_in_bytes/(1024*1024*1024) else: return size_in_bytes

Let’s create a function to get the file size in different size units. This function internally uses to the above function to convert bytes into given size unit,

import os def get_file_size(file_name, size_type = SIZE_UNIT.BYTES ): """ Get file in size in given unit like KB, MB or GB""" size = os.path.getsize(file_name) return convert_unit(size, size_type)

Let’s use this function to get the size of a given file in KB, MB or GB,

Get size of a file in Kilobyte i.e. KB

file_path = 'big_file.csv' # get file size in KB size = get_file_size(file_path, SIZE_UNIT.KB) print('Size of file is : ', size , 'KB')
Size of file is : 162996.35546875 KB

Get size of a file in Megabyte i.e. MB

file_path = 'big_file.csv' # get file size in MB size = get_file_size(file_path, SIZE_UNIT.MB) print('Size of file is : ', size , 'MB')
Size of file is : 159.17612838745117 MB

Get size of a file in Gigabyte i.e. GB

file_path = 'big_file.csv' # get file size in GB size = get_file_size(file_path, SIZE_UNIT.GB) print('Size of file is : ', size , 'GB')
Size of file is : 0.15544543787837029 GB

Check if file exists before checking for the size of the file

If the file does not exist at the given path, then all the above created function to get file size can raise Error. Therefore we should first check if file exists or not, if yes then only check its size,

import os file_name = 'dummy_file.txt' if os.path.exists(file_name): size = get_file_size(file_name) print('Size of file in Bytes : ', size) else: print('File does not exist')

As file ‘dummy_file.txt’ does not exist, so we can not calculate its size.

The complete example is as follows,

import os import enum from pathlib import Path def get_file_size_in_bytes(file_path): """ Get size of file at given path in bytes""" size = os.path.getsize(file_path) return size def get_file_size_in_bytes_2(file_path): """ Get size of file at given path in bytes""" # get statistics of the file stat_info = os.stat(file_path) # get size of file in bytes size = stat_info.st_size return size def get_file_size_in_bytes_3(file_path): """ Get size of file at given path in bytes""" # get file object file_obj = Path(file_path) # Get file size from stat object of file size = file_obj.stat().st_size return size # Enum for size units class SIZE_UNIT(enum.Enum): BYTES = 1 KB = 2 MB = 3 GB = 4 def convert_unit(size_in_bytes, unit): """ Convert the size from bytes to other units like KB, MB or GB""" if unit == SIZE_UNIT.KB: return size_in_bytes/1024 elif unit == SIZE_UNIT.MB: return size_in_bytes/(1024*1024) elif unit == SIZE_UNIT.GB: return size_in_bytes/(1024*1024*1024) else: return size_in_bytes def get_file_size(file_name, size_type = SIZE_UNIT.BYTES ): """ Get file in size in given unit like KB, MB or GB""" size = os.path.getsize(file_name) return convert_unit(size, size_type) def main(): print('*** Get file size in bytes using os.path.getsize() ***') file_path = 'big_file.csv' size = get_file_size_in_bytes(file_path) print('File size in bytes : ', size) print('*** Get file size in bytes using os.stat().st_size ***') file_path = 'big_file.csv' size = get_file_size_in_bytes_2(file_path) print('File size in bytes : ', size) print('*** Get file size in bytes using pathlib.Path.stat().st_size ***') file_path = 'big_file.csv' size = get_file_size_in_bytes_3(file_path) print('File size in bytes : ', size) print('*** Get file size in human readable format like in KB, MB or GB ***') print('Get file size in Kilobyte i.e. KB') file_path = 'big_file.csv' # get file size in KB size = get_file_size(file_path, SIZE_UNIT.KB) print('Size of file is : ', size , 'KB') print('Get file size in Megabyte i.e. MB') file_path = 'big_file.csv' # get file size in MB size = get_file_size(file_path, SIZE_UNIT.MB) print('Size of file is : ', size , 'MB') print('Get file size in Gigabyte i.e. GB') file_path = 'big_file.csv' # get file size in GB size = get_file_size(file_path, SIZE_UNIT.GB) print('Size of file is : ', size , 'GB') print('*** Check if file exists before checking for the size of a file ***') file_name = 'dummy_file.txt' if os.path.exists(file_name): size = get_file_size(file_name) print('Size of file in Bytes : ', size) else: print('File does not exist') if __name__ == '__main__': main()
*** Get file size in bytes using os.path.getsize() *** File size in bytes : 166908268 *** Get file size in bytes using os.stat().st_size *** File size in bytes : 166908268 *** Get file size in bytes using pathlib.Path.stat().st_size *** File size in bytes : 166908268 *** Get file size in human readable format like in KB, MB or GB *** Get file size in Kilobyte i.e. KB Size of file is : 162996.35546875 KB Get file size in Megabyte i.e. MB Size of file is : 159.17612838745117 MB Get file size in Gigabyte i.e. GB Size of file is : 0.15544543787837029 GB *** Check if file exists before checking for the size of a file *** File does not exist

Источник

Как получить размер файла на Python

Размер файла в Python можно получить с помощью модуля os. В этом модуле есть функция stat() , которой мы можем передать имя файла в качестве аргумента. Эта функция возвращает кортежную структуру, содержащую информацию о файле. Обратившись к свойству st_size , мы можем узнать размер файла в байтах. Вот простая программа для печати размера файла в байтах и мегабайтах:

import os file_name = "/Users/pankaj/abcdef.txt" file_stats = os.stat(file_name) print(file_stats) print(f'File Size in Bytes is ') print(f'File Size in MegaBytes is ')

Рабочее окно редактора кода с результатом работы функции stat: выводится размер файла в байтах и мегабайтах

В функцию 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”.

Источник

Оцените статью