arquivo esparso uso em python
-
13-09-2020 - |
Pergunta
Eu estou criando arquivos esparsos em python, como segue:
>>> f = open('testfile', 'ab')
>>> f.truncate(1024000)
>>> f.close()
quando o arquivo for feito, ele leva até 0 de espaço em disco, mas o seu tamanho de inode é definida como o meu valor truncado (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
Como faço para obter o arquivo real de uso de espaço (tamanho alocado) dentro do python?O stat
retorna a chamada do arquivo tamanho aparente, e eu não tenho nenhuma idéia de como o resto, para obter o real uso que ler todo o arquivo (ele pode se tornar muito grande)
>>> os.stat('testfile').st_size
1024000
Solução
>>> os.stat('testfile').st_blocks*512
0
Tadaa :)
st_blocks
é o número de blocos de 512 bytes, na verdade, alocados para o arquivo.Note que st_blocks
não é garantido estar presente em todos os sistemas operacionais, mas aqueles que suporta arquivos esparsos em geral.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow