Me aburria he hice este pequeño code para detectar ciertos tipos de unidades y listarlas:

Código: Seleccionar todo

#############################################
# Author: k0ws                              #
# Usage: cUnidades()                        #
# Webs: Indetectables ~ UdTools ~ Underc0de #
#############################################

import win32file as file
import win32api as api
def cUnidades():
 listdrives = api.GetLogicalDriveStrings().split("\x00")
 i = 0
 print "Lista de FlashDrives o HDD: "
 for drive in listdrives:
  if len(listdrives) == (i + 1):
   break
  if (file.GetDriveType(listdrives[i])) == 2:
   try:
    api.GetDiskFreeSpace(listdrives[i].replace('\\',''))
    print listdrives[i] + " - Conectado"
   except:
    print listdrives[i] + " - Desconectado"
  if (file.GetDriveType(listdrives[i])) == 3:
   try:
    api.GetDiskFreeSpace(listdrives[i].replace('\\',''))
    print listdrives[i] + " - Conectado"
   except:
    print listdrives[i] + " - Desconectado"
  i = i + 1

cUnidades()
Info sobre los tipos de unidades: [Enlace externo eliminado para invitados]
Se que se puede optimizar, pero paso

-Saludos-
No te habia visto la función publicada por aqui bro, como ya tratamos en otro foro, no imports = better code, así que es mejor usar nativas.
Aqui te dejo una alternativa más eficiente y sin dependencias:
import ctypes
def cUnidades():
    if ctypes.windll.kernel32.GetLogicalDrives():
       print ", ".join([chr(x) + u":\\" for x in range(65, 95) if (ctypes.windll.kernel32.GetDriveTypeW(chr(x) + u":\\")==2) ])
Responder

Volver a “Fuentes”