Seite 1 von 1

Dateien in Ordner suchen, Dateinamen in txt Datei speichern

Verfasst: Mittwoch 20. Mai 2020, 21:48
von kollimann
Hallo, bin neu in Python, werde im Moment nur kleine Sachen in Python machen. Ich weiß was programmieren und Scripte schreiben ist, nur Python ist Neuland für mich.

Eine kleine Aufgabe wobei ich Hilfe benötige.

- 2 Ordner nach Dateien durchsuchen
- die Dateinamen incl Dateiendung (Anzahl und Namen sind unbekannt) in eine txt Datei schreiben, Zeilenweise
- ABER wenn möglich in folgender Form, angenommen in Ordner1 sind 5 Dateien und in Ordner2 sind 2 Dateien...... als Beispiel, die Anzahl kann sich immer ändern !
aus Ordner1 Pfad/Datei1
aus Ordner2 Pfad/Datei1
aus Ordner1 Pfad/Datei2
aus Ordner2 Pfad/Datei2
aus Ordner1 Pfad/Datei3
aus Ordner2 Pfad/Datei1 (da ja nur 2Dateien in Ordner2 sind, wieder mit der ersten beginnen)
aus Ordner1 Pfad/Datei4
aus Ordner2 Pfad/Datei2
aus Ordner1 Pfad/Datei5
aus Ordner2 Pfad/Datei1

das war es eigentlich schon.
Ich würde mich freuen wenn mir jemand helfen kann

Danke Heiko

Re: Dateien in Ordner suchen, Dateinamen in txt Datei speichern

Verfasst: Mittwoch 20. Mai 2020, 22:06
von __blackjack__
@kollimann: Das sieht nach `pathlib.Path` aus um die Pfade zu den Dateien zu ermitteln, dann `itertools.cycle()`, das man auf die kürzere Liste anwendet, und dann die `zip()`-Funktion um die Pärchen daraus zu erzeugen.

Re: Dateien in Ordner suchen, Dateinamen in txt Datei speichern

Verfasst: Mittwoch 20. Mai 2020, 22:35
von kollimann
Pfade muss ich nicht ermitteln, die 2 Ordner die durchsucht werden sollen können fest vorgegeben werden.
ich habe folgendes, das gibt mir die Dateinamen aus, erstmal hintereinander......

Code: Alles auswählen

import glob
import os
def files(path):
    for file in os.listdir(path):
        if os.path.isfile(os.path.join(path, file)):
            yield file
for file in files("/storage/videos/"):
    print (file)

for file in files("/storage/pictures/"):
    print (file)

ich beginne ja zu lernen. Mit dem Code hab ich meine gewünschten Dateinamen.

Re: Dateien in Ordner suchen, Dateinamen in txt Datei speichern

Verfasst: Donnerstag 21. Mai 2020, 00:25
von __blackjack__
@kollimann: Ich schrob „Pfade zu den Dateien ermitteln“ und das muss man schon, denn Du willst ja die Pfade zu den Dateien haben. Also nicht die Pfade in denen die Dateien liegen sondern die kompletten Pfade die zu jeder einzelnen Datei führen. Und das macht man eher nicht mehr mit `os` sondern eben mit `pathlib`.

Code: Alles auswählen

#!/usr/bin/env python3
from pathlib import Path


def iter_file_paths(base_path):
    return (path for path in base_path.iterdir() if path.is_file())


def main():
    storage_path = Path("/storage")
    for directory_name in ["videos", "pictures"]:
        for file_path in iter_file_paths(storage_path / directory_name):
            print(file_path)


if __name__ == "__main__":
    main()