2017-02-22 1 views
1

Ich habe eine Anwendung, wo ich drei Generatoren verwenden. Es gibt mehrere Geräte, denen Ordner mit Dateien zugewiesen werden.Limit Generator Werte durch angegebene Anzahl, Rückkehr bleiben Generatorwerte später

Also Top-Level, ich habe eine Liste von Geräten. Iteriert jedes Gerät und nimmt zugewiesene Verzeichnisse dafür in einem Generator auf. In diesem Verzeichnis-Generator wird wieder eine Iteration für Dateien unter jedem zugewiesenen Verzeichnis haben.

Hier sind zwei Generatoren, einer ist für Verzeichnis-Ebene und andere ist für Dateiebene.

So kann ich begrenzen Anzahl der Dateien sollte auf Geräteebene Generator zurückgeben.

Wie gesagt, in der ersten Iteration sollte es uns 10 Dateien in Round-Robin-Mode geben. nach 10 Elementen, sollte es die Iteration stoppen, Nächstes wiederum 10 weitere Elemente abrufen und Iteration usw. anhalten, bis alle Elemente in allen Verzeichnissen für alle Geräte abgeschlossen sind.

Alle Generatoren sind in Python mit iter und nächsten Methoden geschrieben.

Wird es möglich sein, die Anzahl der in Generatoren abzurufenden Elemente zu begrenzen?

+0

Ja, Sie können, es heißt Paginierung. Siehe http://stackoverflow.com/a/2350904/7154688 – cgte

Antwort

1

itertools.islice sollte es für Sie tun.

Basierend auf Ihrer Iteration können Sie start und stop dafür bereitstellen.