C'è un modo per ottenere un elenco di dispositivi di archiviazione collegati, come telecamere, schede SD e dischi rigidi esterni, in Python?Python: OS Elenco indipendente di dispositivi di archiviazione disponibili
risposta
Quanto segue dovrebbe funzionare per Linux e Windows. Questo elencherà TUTTE le unità, non solo quelle esterne!
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....
Il metodo di cui sopra per Linux è molto grezzo, e tornerà unità come sys
e procfs
ecc, se volete qualcosa di più messo a punto, esaminare l'interrogazione con python-dbus
.
Probabilmente se si aggiunge una fase che rileva quali dei punti di montaggio sono di proprietà dell'utente corrente (presumibilmente l'utente connesso al desktop), l'elenco sarà molto vicino all'elenco di "dispositivi esterni". Dovresti essere in grado di smontare prima ciò che vuoi scollegare. – 9000
ecco [un esempio su come usare gli Udisks via dbus] (http://stackoverflow.com/a/5081937/4279). Proprietà [DeviceIsRemovable] (http://hal.freedesktop.org/docs/udisks/Device.html#Device:DeviceIsRemovable) potrebbe essere vicino. – jfs
Puoi solo leggere/proc/mounts su linux, senza bisogno di generare cose. – LtWorf
- 1. Trova dispositivi USB disponibili Mac OS X
- 2. Elenco di caratteri disponibili in PHP
- 3. Rilevamento di dispositivi di archiviazione SSD su sistemi POSIX
- 4. Elenco di concetti OOP disponibili
- 5. Come trovare i dispositivi di archiviazione montati in OSX?
- 6. Elenco di generatori disponibili nell'applicazione rotaie
- 7. elenco dispositivi bluetooth connessi?
- 8. Come posso ottenere un elenco di dispositivi webcam usando opencv?
- 9. Python: un elenco completo di moduli
- 10. Come ottenere un elenco di dispositivi di acquisizione video NAMES (webcam) utilizzando Qt (crossplatform)? (C++)
- 11. Come ottenere un elenco di dispositivi di acquisizione video (webcam) su linux (ubuntu)? (C/C++)
- 12. Python: Elenco contenente elenco secondario di stringhe
- 13. Dov'è un elenco di intenti disponibili in Android?
- 14. Elenco di suoni disponibili per notifiche push su iOS
- 15. Da Swift REPL, come ottengo un elenco di moduli disponibili?
- 16. jenkins script console: elenco dei metodi disponibili di jenkins?
- 17. Come ottenere un elenco dei provider di rete disponibili?
- 18. WiX 3.0: Elenco delle finestre di dialogo UI disponibili
- 19. Come ottenere un elenco di tutti i comandi shell disponibili
- 20. Liquibase - elenco dei tipi di dati generici disponibili
- 21. Ottenere un elenco di suonerie disponibili in Android
- 22. Come ottenere un elenco di tutti i servlet disponibili?
- 23. Elenco di tutti i colori disponibili per PowerShell?
- 24. Elenco degli aggiornamenti rapidi disponibili per VS2010
- 25. Elenco Android tutte le immagini disponibili
- 26. iOS 7 - non sono disponibili dispositivi iOS supportati
- 27. Tutti i target dei dispositivi su xcode diventano "non disponibili"
- 28. Android: elenco di tutti i dispositivi collegati alla rete
- 29. Un elenco completo di tutti i dispositivi Android
- 30. Elenco di tutti i dispositivi, partizioni e volumi in PowerShell
Come si definisce "dispositivo di archiviazione"? Come 'connesso'? –
@Tichodroma L'elenco di dispositivi esterni che appare nel Finder di Mac, in Esplora risorse o nel navigatore di file di Ubuntu. –
definire 'esterno' – njzk2