16 Stimmen

Wie kann man in Python feststellen, ob eine Datei älter als 3 Monate ist?

Ich bin neugierig, wie man die Zeit in Python manipulieren kann. Ich kann das (zuletzt geänderte) Alter einer Datei mit der os.path.getmtime() Funktion als solche:

import os.path, time    

os.path.getmtime(oldLoc)

Ich muss eine Art Test durchführen, um festzustellen, ob dieser Zeitpunkt innerhalb der letzten drei Monate liegt oder nicht, aber ich bin völlig verwirrt von all den verfügbaren Zeitoptionen in Python.

Kann jemand einen Einblick geben? Mit freundlichen Grüßen.

2voto

A Lee Punkte 7388

Wenn Sie die genaue Anzahl der Tage benötigen, können Sie die Funktion calendar Modul in Verbindung mit datetime, z.B.,

import calendar
import datetime

def total_number_of_days(number_of_months=3):
    c = calendar.Calendar()
    d = datetime.datetime.now()
    total = 0
    for offset in range(0, number_of_months):
        current_month = d.month - offset
        while current_month <= 0:
            current_month = 12 + current_month
        days_in_month = len( filter(lambda x: x != 0, c.itermonthdays(d.year, current_month)))
        total = total + days_in_month
    return total

Und geben Sie dann das Ergebnis von total_number_of_days() in den Code, den andere für die Datumsarithmetik bereitgestellt haben.

0voto

Balaji D Punkte 111

Dies ist, um zu wissen, ob ein Datum 3 Monate älter ist

from datetime import date, timedelta time_period=date.today()-date(2016, 8, 10) < timedelta(days = 120)

0voto

rouble Punkte 13722

Hier ist eine allgemeine Lösung mit Zeitdeltas:

from datetime import datetime

def is_file_older_than (file, delta): 
    cutoff = datetime.utcnow() - delta
    mtime = datetime.utcfromtimestamp(os.path.getmtime(file))
    if mtime < cutoff:
        return True
    return False

Um eine Datei zu erkennen, die älter als 3 Monate ist, können wir uns entweder an 90 Tage annähern:

from datetime import timedelta

is_file_older_than(filename, timedelta(days=90))

Oder, wenn Sie mit der Installation externer Abhängigkeiten einverstanden sind:

from dateutil.relativedelta import relativedelta # pip install python-dateutil

is_file_older_than(filename, relativedelta(months=3))

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X