Dorian Fevrier's blog - Mot-clé - tailleJe m’appelle FEVRIER Dorian, je suis infographiste 3D passionné par mon métier, l’informatique en général, l’internet, la programmation et l’évolution de tout ce petit monde. Vous trouverez sur ce blog des tutoriaux, mes coups de cœurs, avis, etc.2024-01-02T23:48:05+01:00FEVRIER Dorianurn:md5:695d9c73474c33ce3dab043823509c4bDotclearTaille d'un fichier humainement compréhensible en Pythonurn:md5:7468b699b20b39fe38a00e078c6632c72011-06-26T22:41:00+02:002013-07-26T18:09:39+02:00NarannScript et codefichiersfrpythonscripttaille<p><img src="https://www.fevrierdorian.com/blog/public/logos/Python_logo_150.png" alt="Python_logo_150.png" style="float:left; margin: 0 1em 1em 0;" title="Python_logo_150.png, mar. 2009" height="150" width="150" />Aujourd'hui je voudrais vous faire partager un minuscule morceau de code Python qui permet de faire, en cinq lignes, un print de la taille d'un fichier humainement compréhensible a partir d'une taille donné en octet.</p>
<p><a href="http://blogmag.net/blog/read/38/Print_human_readable_file_size" hreflang="en">La solution</a> vient d'un certain <a href="http://blogmag.net/blog/fred" hreflang="en">Fred Cirera</a>. Merci à lui! :bravo:</p>
<p>C'est diaboliquement simple mais c'est un soucis assez récurent quand on souhaite afficher des informations sur un fichier en script!</p> <p>Voici la procédure:</p>
<pre class="python python"><span style="color: #ff7700;font-weight:bold;">def</span> sizeof_fmt<span style="color: black;">(</span>num<span style="color: black;">)</span>:
<span style="color: #ff7700;font-weight:bold;">for</span> x <span style="color: #ff7700;font-weight:bold;">in</span> <span style="color: black;">[</span><span style="color: #483d8b;">'bytes'</span>,<span style="color: #483d8b;">'KB'</span>,<span style="color: #483d8b;">'MB'</span>,<span style="color: #483d8b;">'GB'</span>,<span style="color: #483d8b;">'TB'</span><span style="color: black;">]</span>:
<span style="color: #ff7700;font-weight:bold;">if</span> num <span style="color: #66cc66;"><</span> <span style="color: #ff4500;">1024.0</span>:
<span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: #483d8b;">"%3.1f%s"</span> <span style="color: #66cc66;">%</span> <span style="color: black;">(</span>num, x<span style="color: black;">)</span>
num /= <span style="color: #ff4500;">1024.0</span></pre>
<p>Exemple:</p>
<pre class="python python"><span style="color: #66cc66;">>>></span> sizeof_fmt<span style="color: black;">(</span><span style="color: #ff4500;">168963795964</span><span style="color: black;">)</span>
<span style="color: #483d8b;">'157.4GB'</span></pre>
<p>Trop facile! :laClasse:</p>