редкое использование файла в Python

Я создаю редкие файлы в Python следующим образом:

>>> f = open('testfile', 'ab')
>>> f.truncate(1024000)
>>> f.close()

когда файл сделан, он поднимает 0 дисковых пространств, но его inode размер установлен на мое усеченное значение (1000K):

igor47@piglet:~/test$ ls -lh testfile 
-rw-r--r-- 1 igor47 igor47 1000K 2010-07-09 04:02 testfile
igor47@piglet:~/test$ du -hs testfile 
0   testfile

Как я получаю реальное использование пространства файла (выделенный размер) в Python? stat назовите возвраты очевидным размером файла, и я понятия не имею, как еще получить реальное использование кроме считать весь файл (это может стать довольно большим),

>>> os.stat('testfile').st_size
1024000
9
задан Muschel 7 April 2018 в 09:57
поделиться

1 ответ

>>> os.stat('testfile').st_blocks*512
0

Тадаа :)

st_blocks - это количество 512-байтовых блоков, фактически выделенных для файла. Обратите внимание, что st_blocks не гарантированно присутствует во всех операционных системах, но в тех, которые поддерживают разреженные файлы, обычно присутствует.

12
ответ дан 2 November 2019 в 23:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: