ファイルサイズの判読可能なバージョンを取得する 質問する

ファイルサイズの判読可能なバージョンを取得する 質問する

バイトサイズから人間が読めるサイズを返す関数:

>>> human_readable(2048)
'2 kilobytes'

これどうやってするの?

ベストアンサー1

上記の「ライブラリを必要とするにはタスクが小さすぎる」問題を、簡単な実装 (f 文字列を使用するため、Python 3.6 以降) で解決します。

def sizeof_fmt(num, suffix="B"):
    for unit in ("", "Ki", "Mi", "Gi", "Ti", "Pi", "Ei", "Zi"):
        if abs(num) < 1024.0:
            return f"{num:3.1f}{unit}{suffix}"
        num /= 1024.0
    return f"{num:.1f}Yi{suffix}"

サポート対象:

  • 現在知られているものすべてバイナリプレフィックス
  • 負の数と正の数
  • 1000ヨビバイトを超える数字
  • 任意の単位 (ギビビットで数えるのもいいかもしれません!)

例:

>>> sizeof_fmt(168963795964)
'157.4GiB'

によるフレッド・シレラ

おすすめ記事