Dateien vom Datum X auflisten

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
peddy
User
Beiträge: 121
Registriert: Montag 30. Juni 2008, 13:51

Hallo,

ich habe ein kleines Script, was mir Dateien vom Vortag auflistet. Es läuft zwar, aber das geht bestimmt auch eleganter. Wie würde eure Lösung aussehen?

Code: Alles auswählen

# Module importieren
import os
from datetime import timedelta, datetime
from time import localtime
import re

# Eine Liste von Dateien aufbauen
files = os.listdir('.')
files = [ f for f in files if re.search('.txt$', f, re.I)]
files.sort()

# Zeitfilter setzen
d = datetime.now() - timedelta(days=1)
d = d.timetuple()

# Dateien auf alter testen
for file in files:
    filetimesecs = os.path.getmtime('./' + file)
    filetime = localtime(filetimesecs)

    if filetime.tm_mday == d.tm_mday and filetime.tm_mon == d.tm_mon and filetime.tm_year == d.tm_year:
    ¦   print file
BlackJack

@peddy: Ich würde ja bei `date`-Objekten bleiben und nicht in „Timetuple” umwandeln:

Code: Alles auswählen

import glob
import os
from datetime import date as Date, timedelta as TimeDelta


def main():
    filenames = glob.glob('*.[tT][xX][tT]')
    filenames.sort()
    yesterday = Date.today() - TimeDelta(days=1)
    for filename in filenames:
        if Date.fromtimestamp(os.path.getmtime(filename)) == yesterday:
            print filename


if __name__ == '__main__':
    main()
peddy
User
Beiträge: 121
Registriert: Montag 30. Juni 2008, 13:51

@BlackJack

Danke für deinen Lösungsansatz. Dein Script ist viel besser lesbar und kompakter. Habe wieder etwas gelernt.
Antworten