Viele Dateien wie Protokolle haben ein Zeitfeld. Manchmal möchten wir Daten für einen bestimmten Zeitraum abrufen. Zum Beispiel diese Datei:
[root @ www py2] # cat mylog.log 2019 - 05 - 15 08 : 10 : 01 aaaa 2019 - 05 - 15 08 : 32 : 00 bbbb 2019 - 05 - 15 09 : 01 : 02 cccc 2019 - 05 - 15 09 : 28 : 23 dddd 2019 - 05 - 15 10 : 42: 58 eeee 2019 - 05 - 15 11 : 08 : 00 ffff 2019 - 05 - 15 12 : 35 : 03 gggg 2019 - 05 - 15 13 : 13 : 24 hhhh
Wir möchten die Daten zwischen 9:00 und 12:00 erhalten. Beobachten Sie die Datei und stellen Sie fest, dass die ersten 19 Zeichen Zeit sind, solange dieser Teil der Daten in das entsprechende Zeitobjekt konvertiert wird und beurteilt wird, ob er zwischen 9:00 und 12:00 Uhr liegt:
## Verwenden des Zeitmoduls
Import Zeit Logfile = ‚ mylog.log ‘ # Jede Zeile holen Protokolldatei, Bestimmungszeit, wenn es zwischen 9.00 bis 12.00 Uhr ist der Druck T9 die time.strptime = ( ' 2019.05.15 09.00 Uhr: 00 ' , ' % Y-% m-% d% H:% M:% S ' ) t12 = time.strptime ( ' 2019-05-15 12:00:00 ' , ' % Y-% m-% d % H:% M:% S ' ) mit open (logfile, ' r ' ) als fobj: für Zeile in fobj: t = time.strptime (Zeile [: 19], ' % Y-% m-% d% H. :% M:% S.' ) IF T> T12: # , wenn die Zeit größer als die maximale Zeit ist direkt, direkt das Programm beenden schneller ausgeführt BREAK IF T> T9: Print (Linie, Ende = ' ' )
## Datetime-Modul verwenden
aus DATETIME- import DATETIME Logdatei = ' mylog.log ' starten = datetime.strptime ( ' 2019.05.15 09.00.00 ' , ' % Y-% m-% d% H:% M:% S ' ) End = datetime.strptime ( ' 2019.05.15 12.00.00 ' , ' % Y-% m-% d% H:% M:% S ' ) mit offenem (Logfile, ' r ' ) als fobj : für Zeile in fobj: t = datetime.strptime (Zeile [: 19], '% Y-% m-% d% H:% M:% S ' ) wenn t> Ende: Pause, wenn t> Start: Drucken (Zeile, Ende = ' ' )