解決策 1:
os.path.ismount()
を見てみましょう .
解決策 2:
カーネルだけが確実に知っていることに対する決定的な答えについては、カーネルに尋ねてください:
cat /proc/mounts
そのファイルは、好きなツールを使用して、通常のファイルであるかのように読み取り/解析できます。パイソンを含む。簡単な例:
#!/usr/bin/python
d = {}
for l in file('/proc/mounts'):
if l[0] == '/':
l = l.split()
d[l[0]] = l[1]
import pprint
pprint.pprint(d)
解決策 3:
チェックする最も簡単な方法は、 mount
を呼び出すことです subprocess
経由 そこに表示されるかどうかを確認します。クレジットを追加するには、os.readlink()
を使用します /dev/disk/by-*
の内容について
解決策 4:
ボーナス回答。外部デバイスがマウントされていない場合、データはパス /external-backup
のルート パーティションに書き込まれます .外部デバイスがマウントされている場合、ルート パーティションのデータはまだそこにありますが、/external-backup
のため到達できません。 は現在、外部デバイスを指しています。
解決策 5:
古い質問ですが、とにかく(デニス・ウィリアムソンとイグナシオ・バスケス・エイブラムスの答えに基づいて)私の解決策を提供すると思いました。 Linux 以外の環境でリモート ディレクトリがマウントされていることを確認するために使用しているため、/proc および mtab は使用できず、追加のチェックは実装されていません:
def is_mounted(special, directory):
search_prefix = '{} on {}'.format(special, directory.rstrip('/'))
if os.path.ismount(directory):
mounts = subprocess.check_output(['mount']).split('\n')
for line in mounts:
if line[:len(search_prefix)] == search_prefix:
return True;
return False
改善を歓迎します!