
| Current Path : /proc/thread-self/root/home/ift/52_procpy/fibu/ |
Linux ift1.ift-informatik.de 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64 |
| Current File : //proc/thread-self/root/home/ift/52_procpy/fibu/fs.py |
#!/usr/bin/python3
import os,re,sys,fileinput
zeilen = {}
tage = []
for zeile in fileinput.input():
betrag = " "
m = re.search("[\; \"]([\-\+]?\d+)[\,\.](\d\d)[\; \"]",zeile)
if m:
betrag = "%9.2f" % (float(m.group(1)+"."+m.group(2)))
else:
m = re.search("[\; \"]([\-\+]?\d+)\.(\d\d\d)\,(\d\d)[\; \"]",zeile)
if m:
betrag = "%9.2f" % (float(m.group(1)+m.group(2)+"."+m.group(2)))
datum = "00000000"
m = re.search("(\D|^)(\d\d)\.(\d\d)\.(\d\d\d\d)(\D|$)",zeile)
if m:
datum = m.group(4) + m.group(3) + m.group(2)
else:
m = re.search("(\D|^)(20\d\d\d\d\d\d)(\D|$)",zeile)
if m and int(m.group(2)[4:8]) > 0:
datum = m.group(2)
else:
betrag = " "
if not datum in zeilen:
zeilen[datum] = []
tage.append(datum)
zeilen[datum].append([betrag,zeile])
tage.sort()
sum = 0.00
text = []
for datum in tage:
for entry in zeilen[datum]:
betrag = entry[0]
zeile = entry[1]
if "." in betrag or "," in betrag:
# print(datum,sum,betrag)
sum = "%11.2f" % (float(sum) + float(betrag))
zeile1 = sum + " " + betrag + " " + zeile
else:
zeile1 = " " + " " + betrag + " " + zeile
text.append(zeile1)
print("".join(text))