¿Hay alguna manera de obtener una lista de dispositivos de almacenamiento conectados, como cámaras, tarjetas SD y discos duros externos, en Python?Python: sistema operativo Lista independiente de dispositivos de almacenamiento disponibles
Respuesta
Lo siguiente debería funcionar para Linux y Windows. Esto listará TODAS las unidades, ¡no solo las externas!
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....
El método anterior para Linux es muy cruda, y volverá conduce como sys
y procfs
etc., si quieres algo más afinado, mira en consulta con python-dbus
.
Probablemente, si agrega un paso que detecta cuál de los puntos de montaje pertenece al usuario actual (presumiblemente el usuario que inició sesión en el escritorio), la lista estará muy cerca de la lista de 'dispositivos externos'. Deberías poder desmontar primero lo que deseas desenchufar. – 9000
aquí está [un ejemplo de cómo usar los discos U vía dbus] (http://stackoverflow.com/a/5081937/4279). La propiedad [DeviceIsRemovable] (http://hal.freedesktop.org/docs/udisks/Device.html#Device:DeviceIsRemovable) podría estar cerca. – jfs
Puedes leer/proc/monturas en linux, sin necesidad de generar material. – LtWorf
- 1. C biblioteca de sistema operativo independiente
- 2. Cómo generar una ruta independiente de sistema operativo en C++
- 3. Portapapeles independiente del sistema operativo copiar/pegar texto en C
- 4. API independiente del sistema operativo para supervisar el sistema de archivos?
- 5. ¿Cómo puedo normalizar/colapsar rutas o URL en Python en modo independiente del sistema operativo?
- 6. ¿Algún sistema operativo implementa el almacenamiento en búfer para malloc()?
- 7. Actualizar sistema operativo Android programáticamente
- 8. Lista de puertos COM disponibles
- 9. Sistema operativo de espacio aislado
- 10. Desarrollo de un sistema operativo
- 11. Detectar el sistema operativo
- 12. Diferencias fundamentales entre el sistema operativo Linux y el sistema operativo móvil (Android)
- 13. ¿Cómo puedo saber en qué dispositivos/versiones de sistema operativo se está ejecutando mi aplicación iOS?
- 14. Identificando si el sistema operativo es (abierto) SUSE en Python?
- 15. ¿Cómo comprobar si el sistema operativo es Vista en Python?
- 16. ¿Es posible crear un sistema operativo usando Python?
- 17. ¿Cómo puedo cambiar las unidades usando el sistema operativo python?
- 18. Python: ¿En qué sistema operativo me estoy ejecutando?
- 19. ¿Cómo puedo encontrar el sistema operativo actual en Python?
- 20. ¿Cómo detectar el idioma predeterminado del sistema operativo en python?
- 21. hay una JVM independiente que se ejecuta en una PC sin ningún sistema operativo
- 22. Buscar dispositivos USB disponibles Mac OS X
- 23. Detectar sistema operativo en Clojure
- 24. sistema operativo y aplicaciones WPF
- 25. Cómo determinar el sistema operativo
- 26. Rubyzip vs compresión de sistema operativo nativo
- 27. Pregunta de arranque del sistema operativo básico
- 28. Tiempo de compilación del sistema operativo
- 29. Libros de Android en el sistema operativo
- 30. Rellenar ComboBox con lista de fuentes disponibles
¿Cómo se define 'dispositivo de almacenamiento'? ¿Qué tan "conectado"? –
@Tichodroma La lista de dispositivos externos que aparece en el Finder de Mac, el Explorador de Windows o el Explorador de archivos de Ubuntu. –
define 'externo' – njzk2