web-dev-qa-db-ja.com

マウントポイントでデバイスを取得する

マウントされたフォルダでデバイス名(/dev/sdx)を取得する方法はありますか?つまり、マウントされたフォルダーを参照として使用して、マウントポイントに関連付けられたデバイスを取得するか、mount points : devices...でpython辞書を作成します.

私はmount -lがマウントされたファイルシステム情報を取得できることを知っていますが、辞書を作るためにそれを取り除く方法を本当に知りません...

何か助け?

よろしく...

3
Hairo

これはUbuntuとはまったく関係ありませんが、次のとおりです。

#!/usr/bin/env python

import subprocess

mounts = {}

for line in subprocess.check_output(['mount', '-l']).split('\n'):
    parts = line.split(' ')
    if len(parts) > 2:
        mounts[parts[2]] = parts[0]

print mounts
6
Sergey
mount | cut -f 1,3 -d ' '

説明:cutは、区切り文字(-dオプションで指定)を使用して行を分割し、出力するフィールドの一部を選択する(-fオプションにコンマ区切りの引数リストを使用)ための便利な小さなツールです。 mount出力は規則的で、スペースで区切られているため、上記の例では1行目と3列目が出力され、「on」と残りの行は省略されます。

3
January

Gioインターフェースを使用しないのはなぜですか?これらのソリューションは、bashコマンドを実行して出力を解析するよりも優れています。これにより、例外をキャッチして、より詳細に制御できます。

以下に小さな例を示します。

>>> from gi.repository import Gio
>>> vm = Gio.VolumeMonitor.get()
>>> for v in vm.get_volumes():
...     print v.get_name()

より興味深い方法については、ドキュメントを参照してください。

GVolumeMonitor

GVolume

Gmount

3
Timo