Как получить размер файла в Python
Мы можем получить размер файла в Python, используя модуль os.
Размер файла в Python
Модуль python os имеет функцию stat(), где мы можем передать имя файла в качестве аргумента. Эта функция возвращает структуру кортежа, содержащую информацию о файле. Затем мы можем получить его свойство st_size , чтобы получить размер файла в байтах. Вот простая программа для печати размера файла в байтах и мегабайтах.
# get file size in python 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(), мы можем передать еще два аргумента: dir_fd и follow_symlinks. Однако они не реализованы для Mac OS. Вот обновленная программа, в которой я пытаюсь использовать относительный путь, но она выдает NotImplementedError.
# get file size in python 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
Как определить размер файла, имея только список его байтов
Знаете кого-то, кто может ответить? Поделитесь ссылкой на этот вопрос по почте, через Твиттер или Facebook.
- python
- python-3.x
-
Важное на Мете
Похожие
Подписаться на ленту
Лента вопроса
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.11.21.1314
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Как узнать размер директории через Python?
В никсах существует прекрасная команда du, для того что бы сразу показать размер поддиректорий в директории.
Как это реализовать через Python скрипт?
import os #Указываю директорию basedir = "/home/user/test/" #Пока примем что размер поддиректорий равен 0 sub_size = 0 #Так как мы не знаем сколько поддиректорий в директории, получаем их названия. subnames = os.listdir(basedir) #Далее через цикл сплитим пути до поддиректорий. for subname in subnames: subpath = "%s/%s" % (os.path.dirname(basedir), subname) #Потом через walk, получим кортеж (путь до директории, поддиректория, файлы) for path, subdirs, files in os.walk(subpath): #Кто у нас "ест" место? Проходимся по этим файлам и складываем размер for files in file: #Получаем полный путь до файла. filename = os.path.join(path, file) #Узнаем его размер и увеличиваем размер папки sub_size += os.path.getsize(filename) /1024 /1024 print "%s - %.1f Mb" % (basedir[len[basedir]: ], sub_size)
НО. оно выводит мне размер поддиректорий..так что размер второй поддиректории равен сумме размеров первой и второй, и так далее.
СКАЖИТЕ, где ошибка.
- Вопрос задан более трёх лет назад
- 9061 просмотр
Комментировать
Решения вопроса 2
Если я правильно понял, то нужно переместить sub_size = 0:
import os basedir = "/home/user/test/" subnames = os.listdir(basedir) for subname in subnames: sub_size = 0 subpath = "%s/%s" % (os.path.dirname(basedir), subname) for path, subdirs, files in os.walk(subpath): for files in file: filename = os.path.join(path, file) sub_size += os.path.getsize(filename) /1024 /1024 print "%s - %.1f Mb" % (basedir[len[basedir]: ], sub_size)
Получить размер файла в Python
В этом посте мы обсудим, как получить размер файла в Python.
1. Использование os.stat() функция
Стандартным решением для получения статуса файла является использование os.stat() Функция Python. Он возвращает stat_result объект, который имеет st_size атрибут, содержащий размер файла в байтах.
stats = os . stat ( ‘path\to\file\filename.ext’ )
print ( stats . st_size )
2. Использование Path.stat() функция
В качестве альтернативы с Python 3.4 вы можете использовать Path.stat() функция от pathlib модуль. Это похоже на os.stat() функция и возвращает stat_result объект, содержащий информацию об указанном пути.
from pathlib import Path
f = Path ( ‘path\to\file\filename.ext’ )
size = f . stat ( ) . st_size
print ( size )
3. Использование os.path.getsize() функция
Еще один хороший вариант — использовать os.path.getsize() функция для получения размера указанного пути в байтах.
size = os.path . getsize ( ‘path\to\file\filename.ext’ )
print ( size )
4. Использование seek() функция
Здесь идея состоит в том, чтобы открыть файл в режиме только для чтения и установить в конце текущую позицию файлового дескриптора. Это можно сделать с помощью seek() функция, которая возвращает текущую позицию курсора в байтах, начиная с начала.
with open ( ‘path\to\file\filename.ext’ , ‘r’ ) as f :
size = f . seek ( 0 , os . SEEK_END )
print ( size )
Это все, что касается получения размера файла в Python.
Оценить этот пост
Средний рейтинг 4.79 /5. Подсчет голосов: 34
Голосов пока нет! Будьте первым, кто оценит этот пост.
Сожалеем, что этот пост не оказался для вас полезным!
Расскажите, как мы можем улучшить этот пост?
Спасибо за чтение.
Пожалуйста, используйте наш онлайн-компилятор размещать код в комментариях, используя C, C++, Java, Python, JavaScript, C#, PHP и многие другие популярные языки программирования.
Как мы? Порекомендуйте нас своим друзьям и помогите нам расти. Удачного кодирования 🙂
Подписывайся
1 Комментарий
Большинство голосов
Новейшие Самый старый
Встроенные отзывы
Просмотреть все комментарии
Просмотр комментариев
Загрузить больше комментариев
Просматривать
Подпишитесь на новые публикации
- Все проблемы
- Практика DSA
- 100 самых популярных задач
- 50 лучших классических задач
- Лучшие алгоритмы
- Компилятор С/С++
- Компилятор Java
- Компилятор Python
- Компилятор JavaScript
- компилятор PHP
- Компилятор C#
- Свяжитесь с нами
- Политика конфиденциальности
- условия обслуживания
- Подпишитесь на новые публикации
Techie Delight © 2023 Все права защищены.
Этот веб-сайт использует файлы cookie. Используя этот сайт, вы соглашаетесь с использованием файлов cookie, нашей политикой, условиями авторского права и другими условиями. Читайте наши Политика конфиденциальности. Понятно
