En Python, comment puis-je vérifier si un lecteur existe w/o de lancer une erreur pour les lecteurs amovibles?

Voici ce que j'ai à ce jour:

import os.path as op
for d in map(chr, range(98, 123)): #drives b-z
    if not op.isdir(d + ':/'): continue

Le problème est qu'il affiche un "Pas de Disque" zone d'erreur de Windows:

maya.exe - Pas de Disque: Il n'y a pas de disque dans
le lecteur. Veuillez insérer un disque dans
le lecteur \Device\Harddisk1\DR1 [Annuler, Essayez à Nouveau, Continuer]

Je ne peut pas attraper une exception, car il ne fait pas de jeter un Python d'erreur.

Apparemment, cela ne se produit que sur des lecteurs amovibles où il y a une lettre qui lui est attribuée, mais pas de disque inséré.

Est-il un moyen de contourner ce problème sans disant spécifiquement le script qui conduit à ignorer?

Dans mon scénario, je suis à l'école des laboratoires où les lettres de lecteur changer en fonction de l'ordinateur de test, je suis à la. Aussi, j'ai zéro des privilèges de sécurité pour accéder au gestionnaire de disque.

  • Par la voie, nettoyant pour éviter de carte: [chr(c) for c in xrange(98, 123)]. C'est aussi sans doute plus clair de dire xrange(ord('b'), ord('z'))`. Aussi, ne pas sauter "Une"; rien n'indique qu'il doit être un lecteur de disquette. J'ai toujours désactiver le solde non utilisé contrôleur de lecteur de disquette, ce qui libère Un:.
  • Bon conseil! J'ai mis en place tout à l'heure avec le ord() la méthode que vous avez décrit. Fonctionne très bien!
  • Je viens de remarquer que j'ai à mettre ord('z') + 1 pour obtenir ce que ça va tout le chemin à z si.
InformationsquelleAutor jedmao | 2010-11-15