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
Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top