Seite 1 von 1
Iterationsproblem (stoppen und fortsetzen..)
Verfasst: Samstag 4. November 2017, 17:27
von Fenrir
Hallo Leute,
Ich hab ein fuer mich kniffliges Problem und mir kommt einfach keine Idee wie ich es umsetzen koennte.
Ausgangsposition ist ein Ordner mit ein paar hundert Dateien und fuer jede Datei soll ich eine Aktion durchfuehren.
Nun kann ich aber nur 2! aktionen parallel durchfuehren, da mir sonst die Ressourcen ausgehen.
Die Frage ist nun, wie kann ich durch alle Dateien eines Ordners iterieren, die iteration aber nach 2 dateien stoppen und spaeter an der gestoppten Stelle fortfuehren?
Wahrscheinlich gibts ne mega simple Loesung, aber ich komm halt echt nicht drauf, bin fuer alle Ideen und Ansaetze offen.
vielen Dank schonmal
Re: Iterationsproblem (stoppen und fortsetzen..)
Verfasst: Samstag 4. November 2017, 17:35
von kbr
@Fenrir: merke Dir einfach die Dateien, welche bereits bearbeitet wurden und bearbeite diese dann später nicht erneut.
Re: Iterationsproblem (stoppen und fortsetzen..)
Verfasst: Samstag 4. November 2017, 17:40
von Fenrir
kbr hat geschrieben:@Fenrir: merke Dir einfach die Dateien, welche bereits bearbeitet wurden und bearbeite diese dann später nicht erneut.
Danke fuer diesen interessanten Ansatz.
Quasi den Namen in ner Liste speichern und dann durch die liste wieder durch... ne Ahnung wie das dann mit der Laufzeit aussieht, wenn die Anzahl der Dateien ne Groessenordnung von 10k aufwaerts bekommen?
Re: Iterationsproblem (stoppen und fortsetzen..)
Verfasst: Samstag 4. November 2017, 17:47
von __deets__
10k Pfade mit einer Länge von sicher nicht mehr als 1k - es könnte ein Me Ga Byte an Daten anfallen.
Rufen sie die Küstenwache, NASA und den UNO Sicherheitsrat, da kommt was ungeheuerliches auf uns zu!
Re: Iterationsproblem (stoppen und fortsetzen..)
Verfasst: Samstag 4. November 2017, 18:10
von Fenrir
__deets__ hat geschrieben:10k Pfade mit einer Länge von sicher nicht mehr als 1k - es könnte ein Me Ga Byte an Daten anfallen.
Rufen sie die Küstenwache, NASA und den UNO Sicherheitsrat, da kommt was ungeheuerliches auf uns zu!
Keine Sorge, Behoerden sind nun alamiert und bereiten sich auf das Schlimmste vor.
Re: Iterationsproblem (stoppen und fortsetzen..)
Verfasst: Samstag 4. November 2017, 18:56
von kbr
Fenrir hat geschrieben:ne Ahnung wie das dann mit der Laufzeit aussieht, wenn die Anzahl der Dateien ne Groessenordnung von 10k aufwaerts bekommen?
Für Python kein Problem. Falls sich die Dateien aber alle in einem Verzeichnis befinden, möglicherweise ein Problem für das OS.
Re: Iterationsproblem (stoppen und fortsetzen..)
Verfasst: Samstag 4. November 2017, 18:59
von Sirius3
@Fenrir: warum willst Du was stoppen und danach weitermachen? Oder anders gesagt, in jeder Schleife wird solange "gestoppt" bis das Programm am Ende der Schleife wieder zurückspringt:
Das arbeitet jede Aktion eine nach der anderen ab.
Jetzt kommt es für die Antwort für Dein Problem darauf an, wie Du da etwas parallel abarbeitest? Nämlich Parallelisierung macht es nötig, zu synchronisieren. Aber wie konkret kommt darauf an, wie Du das überhaupt machen willst.
Re: Iterationsproblem (stoppen und fortsetzen..)
Verfasst: Samstag 4. November 2017, 19:23
von noisefloor
Hallo,
du kannst dir die Dateinamen von einem Generator liefern lassen.
Gruß, noisefloor
Re: Iterationsproblem (stoppen und fortsetzen..)
Verfasst: Samstag 4. November 2017, 19:29
von kbr
@noisefloor: das hilft aber nichts, wenn das Programm stoppt und später erneut gestartet wird. Auch sonst macht es keinen funktionalen Unterschied, solange alle Dateien nur einmal bearbeitet werden sollen. Viel interessanter ist die Frage nach dem Grund der Unterbrechung.
Re: Iterationsproblem (stoppen und fortsetzen..)
Verfasst: Samstag 4. November 2017, 19:32
von Fenrir
Sirius3 hat geschrieben:@Fenrir: warum willst Du was stoppen und danach weitermachen? Oder anders gesagt, in jeder Schleife wird solange "gestoppt" bis das Programm am Ende der Schleife wieder zurückspringt:
Das arbeitet jede Aktion eine nach der anderen ab.
Jetzt kommt es für die Antwort für Dein Problem darauf an, wie Du da etwas parallel abarbeitest? Nämlich Parallelisierung macht es nötig, zu synchronisieren. Aber wie konkret kommt darauf an, wie Du das überhaupt machen willst.
Man Problem war, dass ich noch nie ne Situation hatte, bei der die Schleife nur teilweise durchlaufen durfte.
Hab jetzte einfach nen counter eingebaut und ne if abfrage mit modulo, nicht schoen, aber funktioniert und die iteration laeuft 2 files durch und dann werden die Aktionen durchgefuehrt.
Zusaetzlich speichere ich die Dateien in ner Liste ab und kann diese direkt ueber die letzten beiden Eintraege ansteuern.
Denke damit kann ich arbeiten
@ALL
Vielen Dank fuer die Hilfe und Ideen
Re: Iterationsproblem (stoppen und fortsetzen..)
Verfasst: Samstag 4. November 2017, 20:42
von noisefloor
Hallo,
das hilft aber nichts, wenn das Programm stoppt und später erneut gestartet wird.
Richtig - hatte es auch so verstanden, dass zumindest das "Hauptprogramm" nicht beendet wird sondern "nur" der Iterator pausiert werden soll (ohne Programmende).
Gruß, noisefloor
Re: Iterationsproblem (stoppen und fortsetzen..)
Verfasst: Mittwoch 8. November 2017, 03:49
von pillmuncher
In den
Recipes in der Doku zu itertools gibt es die
grouper-Funktion. Damit könnte man sowas bauen:
Code: Alles auswählen
files = ...
grouped = grouper(files, 2)
for group in grouped:
for each in group:
...