1. ホーム
  2. python

[解決済み] 指定されたファイルを含むファイルシステムのサイズと空き容量を調べる

2023-07-27 10:33:41

質問

LinuxでPython2.6を使っています。最速の方法は何ですか。

  • を使用して、指定されたディレクトリまたはファイルがどのパーティションに含まれているかを判断する方法は?

    例えば、次のように仮定します。 /dev/sda2 にマウントされているとします。 /home であり、かつ /dev/mapper/foo/home/foo . 文字列から "/home/foo/bar/baz" のペアを復元したい。 ("/dev/mapper/foo", "home/foo") .

  • で、与えられたパーティションの使用統計情報を取得するには?例えば、与えられた /dev/mapper/foo 私はパーティションのサイズと利用可能な空き領域 (バイト単位か、およそメガバイト単位) を取得したいと思います。

どのように解決するのですか。

デバイスの空き容量が必要なだけなら、以下の方法で解決できます。 os.statvfs() を使用した回答を参照してください。

ファイルに関連するデバイス名とマウントポイントも必要な場合は、外部プログラムを呼び出してこの情報を取得する必要があります。 df として呼び出された場合、必要なすべての情報を提供します。 df filename として呼ばれた場合、ファイルを含むパーティションに関する行を表示します。

例を挙げると

import subprocess
df = subprocess.Popen(["df", "filename"], stdout=subprocess.PIPE)
output = df.communicate()[0]
device, size, used, available, percent, mountpoint = \
    output.split("\n")[1].split()

の正確なフォーマットに依存するため、これはかなりもろいことに注意してください。 df の出力の正確なフォーマットに依存するため、これはかなりもろいものですが、より堅牢な解決策を私は知らないのです。 (いくつかの解決策は /proc ファイルシステムに依存するいくつかのソリューションがありますが、これはこれよりもさらに移植性が低くなっています)。