Seite 1 von 1

Durch Dateinamen und Variablen iterieren

Verfasst: Montag 28. März 2022, 16:49
von LukasP
Hallo zusammen,
ich möchte mehrere Excel Dateien aus einem Ordner einlesen, die sich nur anhand von 2 Zahlen im Dateinamen unterscheiden und folgendermaßen aussehen:

20200101_abc.xlsx
20200102_abc.xlsx
.
.
.

Bisher habe ich das immer händisch gemacht (shame on me) und möchte das nun mit einer Schleife optimieren. Außerdem sollen die pandas-Datasets auch aufsteigend benannt werden. Das habe ich bisher auch händisch gemacht:

import1 = pd.read_excel('20200101_abc.xlsx')
import2 = pd.read_excel('20200102_abc.xlsx')

Mein Problem: Ich habe zwar ein grundlegendes Verständnis von Schleifen, das hier ist mir jedoch etwas zu hoch. Ich habe bereits recherchiert, dass man alle Dateien in einem Ordner auf einmal einlesen kann, ich denke aber das funktioniert nicht mit pd.read. Das mit den Dateinamen könnte eventuell mit String Concatenation funktionieren?

Für eine kleine Starthilfe wäre ich euch sehr dankbar :)

LG Lukas

Re: Durch Dateinamen und Variablen iterieren

Verfasst: Montag 28. März 2022, 17:02
von __deets__
Pfade behandelt man nicht (mehr) als Strings. Sondern mit der pathlib als Objekte. Denn durch string-concatenation wird ganz schnell ein ungueltiger Pfad, wenn zB dem Verzeichnis ein abschliessender Slash fehlt. Und pathlib kann dir mit glob und rglob auch die Eintraege passend zu einem bestimmten Muster geben.

Re: Durch Dateinamen und Variablen iterieren

Verfasst: Montag 28. März 2022, 17:35
von Sirius3
Man nummeriert keine Variablennamen; statt dessen benutzt man eine passende Datenstruktur, z.B. eine Liste.

Code: Alles auswählen

from pathlib import Path
importe = [
    pd.read_excel(filename)
    for filename in sorted(Path().glob('*_abc.xlsx'))
]