71 lines
2.0 KiB
Python
71 lines
2.0 KiB
Python
# Funktionen bzgl. Timestamps
|
|
|
|
import time
|
|
import datetime
|
|
import os
|
|
|
|
# Zeitstempel schreiben
|
|
def append_timestamp(filename):
|
|
# Hole den aktuellen Timestamp in Epoch-Zeit
|
|
timestamp = int(time.time())
|
|
|
|
try:
|
|
# Öffne die Datei im Anhang-Modus ('a')
|
|
with open(filename, 'a') as file:
|
|
# Schreibe den Timestamp in die Datei und füge einen Zeilenumbruch hinzu
|
|
file.write(f"{timestamp}\n")
|
|
except FileNotFoundError:
|
|
# Fehlende Verzeichnisse anlegen
|
|
folder_path = os.path.dirname(filename)
|
|
os.makedirs(folder_path, exist_ok=True)
|
|
append_timestamp(filename)
|
|
|
|
# Anzahl der Zeilen zählen
|
|
def len_timestamps(filename):
|
|
try:
|
|
# Öffne die Datei im Lese-Modus ('r')
|
|
with open(filename, 'r') as file:
|
|
# Zähle die Zeilen
|
|
lines = file.readlines()
|
|
return len(lines)
|
|
except FileNotFoundError:
|
|
print(f"Die Datei {filename} wurde nicht gefunden.")
|
|
return 0
|
|
|
|
# Stempelzustand auslesen
|
|
def stempel_zustand(filename):
|
|
lines = len_timestamps(filename)
|
|
if lines == 0:
|
|
print(f"Keine Einträge")
|
|
elif lines % 2 == 0:
|
|
return("ausgestempelt")
|
|
else:
|
|
return("eingestempelt")
|
|
|
|
# Stempelübersicht zusammenstellen
|
|
def overview(filename):
|
|
|
|
# Öffne die Datei im Lese-Modus ('r')
|
|
with open(filename, 'r') as file:
|
|
lines = file.readlines()
|
|
|
|
in_times = []
|
|
out_times = []
|
|
|
|
for i in range(0, len(lines)):
|
|
if (i + 1) % 2 == 0:
|
|
out_times.append(lines[i])
|
|
else:
|
|
in_times.append(lines[i])
|
|
if len(in_times) > len(out_times):
|
|
out_times.append("")
|
|
for i in range(0, len(in_times)):
|
|
print(convert_timestamp(in_times[i], "%d.%m.%Y %H:%M") + " - " + convert_timestamp(out_times[i], "%H:%M"))
|
|
|
|
|
|
# Timestamp konvertieren
|
|
def convert_timestamp(timestamp, format):
|
|
try:
|
|
return str(datetime.datetime.fromtimestamp(int(timestamp)).strftime(format))
|
|
except:
|
|
return ("...") |