Wenn die Datei ein Verzeichnis ist, möchte ich die Funktion recurse. Aber ich würde manchmal einen Generator bekommen, wenn ich als nächstes aufrufe. Gibt es einen Weg, ich kann immer eine Datei bekommen.Datei in einem Pfad generieren, aber manchmal einen Generator zurück
1
A
Antwort
2
Um Dateien zu generieren, verwenden Sie yield from next_file(file_path)
anstelle von yield next_file(file_path)
, die ein Generatorobjekt erzeugt.
Auf älteren Python-Versionen ohne yield from
, Sie eine explizite yield
Schleife hier verwenden:
for f in next_file(file_path):
yield f
1
Versuchen
def next_file(path):
'''
generator file in the path
'''
flist = os.listdir(path)
for fname in flist:
file_path = path + "/" + fname
if os.path.isfile(file_path):
yield file(file_path)
else:
for f in next_file(file_path):
yield f
next_file
gibt einen Generator, so dass, wenn Sie return next_file(file_path)
tun, wird der Generator von next_file
zurückgegeben wird (statt Wert) ergab, so dass Sie über diesen Generator durchlaufen müssen und yield
alle Elemente ein einzeln.
+0
Ich akzeptiere die erste Antwort, danke auch. – midpush
Verwandte Themen
- 1. Generieren verschachtelter Routen in einem benutzerdefinierten Generator
- 2. Psycopg2 cursor.execute gibt einen Generator zurück
- 3. Linker-Map-Datei hat manchmal verstümmelte Symbole, aber nicht immer
- 4. Kann DBContext Generator Zuordnungen aus der EDMX-Datei generieren?
- 5. einen String zurück, aber Müll
- 6. NSFileWrapper gibt Null zurück, manchmal
- 7. NReco pdf Generator Änderung Binär-Pfad
- 8. Datei gefunden mit relativem Pfad, aber nicht absolutem Pfad? (VBS)
- 9. Generieren Sie einen zufälligen Koordinatenpfad in einem Raster
- 10. Absoluter Pfad zurück zum web-relativen Pfad
- 11. Warum verläuft der A * Pfad manchmal in geraden Linien und manchmal in Diagonalen? (Java)
- 12. Bazel-Header-Datei-Code-Generator
- 13. stringWithUTF8String versagt, aber nur manchmal
- 14. unserialize manchmal gibt false zurück
- 15. Neo4j finde den kürzesten Pfad aber schließe einen Pfad aus
- 16. Pfad in Klassenbibliothek Datei
- 17. Datei-Hash-Generator in Eingabeaufforderung mit Dateipfad
- 18. TokenStorage gibt manchmal null in Service zurück
- 19. generateCGImagesAsynchronConnorousForTimes generieren manchmal ganze Thumbnails nicht
- 20. Wie in CSV-Datei von einem Generator in Python schreiben
- 21. SvnClient.GetStatus (Pfad, Argumente, Status) gibt 0 für versionierte Datei zurück?
- 22. MethodInfo.Invoke gibt manchmal null zurück und gibt manchmal den Wert
- 23. Erstellen leerer Verzeichnisse in einem Yeoman Generator
- 24. Generieren Sie einen zufälligen Buchstaben in Python
- 25. RubyMine Suchprojekt für Datei durch einen Pfad
- 26. "Fehler C1083: Include-Datei kann nicht geöffnet werden", aber ich habe einen Pfad zur Include-Datei
- 27. Wie bekomme ich einen Wert von einem Generator in Python?
- 28. Knoten path.relative falschen Pfad zurück
- 29. Django + jQuery: Manchmal AJAX, aber immer trocken?
- 30. Warum gibt Class.getSuperclass() manchmal Object.class zurück?
Unrelated: Verwenden Sie 'path = os.path.join (dirpath, Dateiname)' statt 'path = dirpath + "/" + Dateiname' – jfs