Wenn ich nicht falsch darüber bin, wie diese Funktion funktioniert (ich habe eigentlich keine Win7-Box vor mir), müssen Sie auf die Windows Shell-APIs zugreifen, um auf Bibliotheken zugreifen zu können.
Lesen von Introducing Libraries von MSDN Magazine, es scheint ziemlich klar, dass Apps, die nur mit dem Dateisystem befassen eine Bibliothek als nur ein normales Verzeichnis, und nicht einmal eine Anzeige der verschiedenen verstreuten Verzeichnisse, die die Bibliothek bilden. Es sei denn, Sie bleiben immer bei den komplizierten Dateiauswahldialogen, um alle Pfade zu erhalten (in welchem Fall der Benutzer Bibliotheken sieht, aber immer einen bestimmten Ordner auswählt, so dass Sie sich nicht mit Bibliotheken beschäftigen müssen), müssen Sie explizit verwenden die Shell-APIs.
Ich denke, Sie wollen bei Windows Libraries für die Dev-Anleitung und IShellLibrary für die Referenz starten.
Dies sind offensichtlich COM-APIs, also sollten Sie wahrscheinlich win32com
verwenden, um von Python darauf zuzugreifen. (Sie könnten ctypes
verwenden und mit dem COM-Zeug C-style umgehen, aber das wollen Sie wirklich nicht.) Es ist möglich, dass jemand diese COM-Objekte bereits in einer netten Python-Schnittstelle eingepackt hat - ich habe nichts schnell gefunden PyPI und ActiveState suchen, aber Sie möchten vielleicht eine ernstere Suche versuchen.
Alternativ können Sie natürlich auch IronPython verwenden und die .NET-APIs anstelle der nativen verwenden.
gut, wenn Sie nur mit einem „r '“ vor Python sortiert es out; wie Datei = r'C: \ users \ me ' –
Wenn Sie 'os.listdir()' auf einer Bibliotheksabstraktion verwenden können, können Sie auch 'os.walk()' darauf verwenden. –
@BHM: Ich denke nicht das 'r' ist das Problem hier. – abarnert