Solusi 1:
Saya akan melihat os.path.ismount()
.
Solusi 2:
Untuk jawaban pasti atas sesuatu yang hanya diketahui oleh kernel, tanyakan pada kernel:
cat /proc/mounts
File itu dapat dibaca / diurai seperti file biasa, menggunakan alat apa pun yang Anda suka. Termasuk Piton. Contoh cepat-n-kotor:
#!/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)
Solusi 3:
Cara termudah untuk memeriksanya adalah dengan mengaktifkan mount
melalui subprocess
dan lihat apakah itu muncul di sana. Untuk kredit ekstra, gunakan os.readlink()
pada konten /dev/disk/by-*
untuk mencari tahu perangkat apa itu.
Solusi 4:
Jawaban bonus. Jika perangkat eksternal tidak terpasang, data ditulis ke partisi root di jalur /external-backup
. Jika perangkat eksternal dipasang data pada partisi root masih ada tetapi tidak dapat dijangkau karena /external-backup
sekarang mengarah ke perangkat eksternal.
Solusi 5:
Pertanyaan lama, tapi saya pikir saya akan menyumbangkan solusi saya (berdasarkan jawaban Dennis Williamson dan Ignacio Vazquez-Abrams). Karena saya menggunakannya di lingkungan non-Linux untuk memeriksa direktori jarak jauh yang sedang dipasang, /proc dan mtab tidak dapat digunakan dan tidak ada pemeriksaan tambahan yang diterapkan:
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
Peningkatan disambut baik!