Python'da Kameralar, SD kartlar ve harici Sabit Sürücüler gibi bağlı depolama aygıtlarının bir listesini almanın bir yolu var mı?Python: OS Kullanılabilir depolama aygıtlarının bağımsız listesi
cevap
Aşağıdakiler Linux ve Windows için çalışmalıdır. Bu sadece sürücüleri değil, TÜM sürücüleri listeler!
import subprocess
import sys
#on windows
#Get the fixed drives
#wmic logicaldisk get name,description
if 'win' in sys.platform:
drivelist = subprocess.Popen('wmic logicaldisk get name,description', shell=True, stdout=subprocess.PIPE)
drivelisto, err = drivelist.communicate()
driveLines = drivelisto.split('\n')
elif 'linux' in sys.platform:
listdrives=subprocess.Popen('mount', shell=True, stdout=subprocess.PIPE)
listdrivesout, err=listdrives.communicate()
for idx,drive in enumerate(filter(None,listdrivesout)):
listdrivesout[idx]=drive.split()[2]
# guess how it should be on mac os, similar to linux , the mount command should
# work, but I can't verify it...
elif 'macosx' ...
do the rest....
Linux için yukarıdaki yöntem çok ham olduğunu ve bir şey daha iyi ayarlanmış, python-dbus
ile sorgulama içine bakmak istiyorsanız, vb sys
ve procfs
gibi sürücüleri dönecektir.
Muhtemelen, bağlama noktalarından hangilerinin mevcut kullanıcıya ait olduğunu (muhtemelen masaüstünde oturum açan kullanıcı) tespit eden bir adım eklerseniz, liste 'harici aygıtlar' listesine çok yakın olacaktır. İlk olarak ne çıkarmak istediğinizi kaldırabilmeniz gerekir. – 9000
işte burada [Udisks'i dbus ile nasıl kullanacağınız] (http://stackoverflow.com/a/5081937/4279). Özellik [DeviceIsRemovable] (http://hal.freedesktop.org/docs/udisks/Device.html#Device:DeviceIsRemovable) yakın olabilir. – jfs
Sadece linux üzerinde/proc/mounts okuyabilirsiniz. – LtWorf
'Depolama aygıtını' nasıl tanımlarsınız? 'Bağlantılı' nasıl? –
@Tichodroma Mac Finder'da, Windows Gezgini'nde veya Ubuntu dosya tarayıcısında görünen harici aygıtların listesi. –
'external' tanımla – njzk2