Seite 1 von 1

Dateien vom Datum X auflisten

Verfasst: Mittwoch 31. Juli 2013, 12:44
von peddy
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

Re: Dateien vom Datum X auflisten

Verfasst: Mittwoch 31. Juli 2013, 13:15
von 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()

Re: Dateien vom Datum X auflisten

Verfasst: Donnerstag 1. August 2013, 08:56
von peddy
@BlackJack

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