2017-06-11 6 views
-2

Ich arbeite an einem Programm, das mehrere Suchen durch einen Ordner durchführen muss, der weit über 20.000 Dateien enthalten kann, um zu sehen, ob eine bestimmte Datei existiert. Durchläuft os.path.isfile jede Datei in einem Verzeichnis oder verwendet sie eine effizientere Methode? Und würden diese 20.000 Dateien zwischen verschiedenen Unterverzeichnissen aufgeteilt werden, um die Suche zu beschleunigen, die isfile machen muss?Wie wird os.path.file implementiert?

Anmerkung: Ich bin mit Python 3

+0

Sie müssen sich die [offizielle Dokumentation] ansehen (https://docs.python.org/2/library/os.path.html#os.path.isfile) –

+1

Soweit ich das feststellen kann, gibt die Dokumentation keine Informationen darüber, wie Methoden implementiert werden. – Sam

+0

Bitte lesen Sie die Dokumentation. Zum einen arbeitet isfile auf einem einzigen Pfad. Es macht nichts, wenn es rekursiv in das Dateisystem absteigt. – wmorrell

Antwort

1

Intern es stat system call verwendet und arbeitet mit der Geschwindigkeit, dass das Dateisystem und OS zur Verfügung stellen.

Ob das Aufsplitten eines großen Verzeichnisses in mehrere Unterverzeichnisse die Geschwindigkeit stark erhöht, hängt vom Betriebssystem und der Dateisystemimplementierung ab. Aber normalerweise ja - je weniger Dateien in einem Verzeichnis, desto besser.

Verwandte Themen