Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 20, 2012 23:20:19

Win95
От:
Зарегистрирован: 2011-11-04
Сообщения: 56
Репутация: +  0  -
Профиль   Отправить e-mail  

getsize

Доброго времени суток)

Мне необходимо было получить размер файла и я нашел это:

os.stat('C:\111\111.txt').st_size
и это
os.path.getsize('C:\111\111.txt')
Собственно говоря оба варианта позволяют получить размер файла, но не пойму, зачем их 2? Модуль то один, да и он стандартный (os).



Офлайн

#2 Апрель 21, 2012 00:35:13

s0rg
От:
Зарегистрирован: 2011-06-05
Сообщения: 777
Репутация: +  25  -
Профиль   Отправить e-mail  

getsize

os.path.getsize это короткая запись для os.stat(…).st_size

Офлайн

#3 Апрель 21, 2012 08:03:02

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

getsize

Win95
Доброго времени суток)

Мне необходимо было получить размер файла и я нашел это:
os.stat('C:\111\111.txt').st_size
и это
os.path.getsize('C:\111\111.txt')
Собственно говоря оба варианта позволяют получить размер файла, но не пойму, зачем их 2? Модуль то один, да и он стандартный (os).
Достаточно взглянуть на исходники Питона, файл genericpath.py

def getsize(filename):
    """Return the size of a file, reported by os.stat()."""
    return os.stat(filename).st_size



Офлайн

#4 Апрель 22, 2012 23:21:13

dimy44
От: Евпатория
Зарегистрирован: 2012-04-21
Сообщения: 463
Репутация: +  42  -
Профиль  

getsize

Откуда видно, что os.stat(filename).st_size будет работать быстрее.

Офлайн

#5 Апрель 23, 2012 12:22:32

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

getsize

Не будет. Точнее, разницу заметить не получится.



Офлайн

#6 Апрель 23, 2012 18:03:32

reclosedev
От: Н.Новгород
Зарегистрирован: 2012-03-29
Сообщения: 870
Репутация: +  173  -
Профиль   Отправить e-mail  

getsize

Если говорить о скорости, то когда нужно пробежаться по большому количеству файлов и узнать не только размер, но и время создания, время модификации, права и т.п., то лучше вызвать os.stat() один раз на файл и брать информацию из полученного namedtuple'a. Когда же количество файлов и скорость не критичны или нужно только один вид информации (например размер), удобнее воспользоваться функциями из os.path: os.path.getsize(), os.path.getmtime() и т.п.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version