Uso de archivo escaso en Python
-
13-09-2020 - |
Pregunta
Estoy creando archivos escasos en Python de la siguiente manera:
>>> f = open('testfile', 'ab')
>>> f.truncate(1024000)
>>> f.close()
Cuando se realiza el archivo, se ocupa de 0 espacio en disco, pero su tamaño de inodo se establece en mi 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
¿Cómo obtengo el uso del espacio real del archivo (tamaño asignado) dentro de Python?La llamada stat
devuelve el tamaño aparente del archivo, y no tengo idea de cómo para obtener el uso real que no sea leer el archivo completo (puede volverse bastante grande)
>>> os.stat('testfile').st_size
1024000
Solución
>>> os.stat('testfile').st_blocks*512
0
tadaa :)
st_blocks
es el número de bloques de 512 bytes en realidad asignados al archivo.Tenga en cuenta que no se garantiza que st_blocks
esté presente en todos los sistemas operativos, pero aquellos que admiten los archivos escasos generalmente hacen.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow