sparse l'utilisation du fichier en python
-
13-09-2020 - |
Question
Je suis la création de fichiers fragmentés en python comme suit:
>>> f = open('testfile', 'ab')
>>> f.truncate(1024000)
>>> f.close()
lorsque le fichier est terminé, il prend de l'0 de l'espace disque, mais son inode la taille est à mon tronquée de la valeur (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
Comment puis-je obtenir le fichier réel de l'utilisation de l'espace (taille allouée) à l'intérieur de python?L' stat
appel renvoie le fichier est de taille apparente, et je n'ai aucune idée de quelle autre manière à obtenir l'utilisation réelle autre que de lire le fichier en entier (il peut devenir assez grand)
>>> os.stat('testfile').st_size
1024000
La solution
>>> os.stat('testfile').st_blocks*512
0
Tadaa :)
st_blocks
est le nombre de blocs de 512 octets effectivement allouée au fichier.Notez que st_blocks
n'est pas garanti d'être présent dans tous les systèmes d'exploitation, mais ceux qui prennent en charge les fichiers fragmentés généralement.