2017-02-22 1 views
1

J'ai une application où j'utilise trois générateurs. Plusieurs périphériques seront affectés à des répertoires de fichiers.valeurs de générateur de limite par compte donné, retourner les valeurs restantes de générateur plus tard

Donc au niveau supérieur, j'ai une liste de périphériques. itère chaque périphérique et récupère les répertoires alloués dans un générateur. Dans ce répertoire, le générateur aura à nouveau une itération pour les fichiers sous chaque répertoire alloué.

Voici deux générateurs, un pour le niveau de répertoire et l'autre pour le niveau de fichier. Donc, je peux limiter le nombre de fichiers devrait retourner sur le générateur de niveau de l'appareil. Comme dit, dans la première itération, il devrait nous donner 10 fichiers en mode round robin. après 10 éléments, il devrait arrêter l'itération, Prochain tour encore chercher 10 autres éléments et arrêter l'itération et ainsi de suite jusqu'à ce qu'il complète tous les éléments dans tous les répertoires pour tous les périphériques.

Tous les générateurs sont écrits en Python en utilisant iter et méthodes suivantes.

Sera-t-il possible de limiter le nombre d'éléments à extraire dans les générateurs?

+0

Oui, vous pouvez, ça s'appelle la pagination. Voir http://stackoverflow.com/a/2350904/7154688 – cgte

Répondre

1

itertools.islice devrait le faire pour vous.

D'après votre itération, vous pouvez fournir start et stop pour cela.