Win95
Апрель 20, 2012 23:20:19
Доброго времени суток)
Мне необходимо было получить размер файла и я нашел это:
os.stat('C:\111\111.txt').st_size
и это
os.path.getsize('C:\111\111.txt')
Собственно говоря оба варианта позволяют получить размер файла, но не пойму, зачем их 2? Модуль то один, да и он стандартный (os).
s0rg
Апрель 21, 2012 00:35:13
os.path.getsize это короткая запись для os.stat(…).st_size
FishHook
Апрель 21, 2012 08:03:02
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
dimy44
Апрель 22, 2012 23:21:13
Откуда видно, что os.stat(filename).st_size будет работать быстрее.
Андрей Светлов
Апрель 23, 2012 12:22:32
Не будет. Точнее, разницу заметить не получится.
reclosedev
Апрель 23, 2012 18:03:32
Если говорить о скорости, то когда нужно пробежаться по большому количеству файлов и узнать не только размер, но и время создания, время модификации, права и т.п., то лучше вызвать os.stat() один раз на файл и брать информацию из полученного namedtuple'a. Когда же количество файлов и скорость не критичны или нужно только один вид информации (например размер), удобнее воспользоваться функциями из os.path: os.path.getsize(), os.path.getmtime() и т.п.