Ongoing enhancements
This commit is contained in:
@@ -2,17 +2,42 @@
|
||||
from numpy import genfromtxt, savetxt
|
||||
from time import time
|
||||
from datetime import datetime
|
||||
import models
|
||||
from models import models
|
||||
from models.database import engine, SessionLocal
|
||||
# import sustApp.models.models as models
|
||||
# from sustApp.models.database import engine, SessionLocal
|
||||
|
||||
import os, re
|
||||
from database import engine, SessionLocal
|
||||
from pytz import timezone
|
||||
import pandas as pd
|
||||
import glob
|
||||
#import csv
|
||||
|
||||
# def Load_Data(file_name):
|
||||
# with open(source_csv, encoding='utf-8-sig') as f:
|
||||
# for line in f:
|
||||
# fields = line.strip().split(';')
|
||||
# print(fields)
|
||||
|
||||
def Load_Data(file_name):
|
||||
#data = genfromtxt(file_name, delimiter=';', skip_header=1, converters={0: lambda s: str(s)})
|
||||
#str2date = lambda x: datetime.strptime(x, '%d-%m-%y')
|
||||
data = genfromtxt(file_name, delimiter=';', dtype=None, skip_header=0, encoding='utf-8-sig')
|
||||
df = pd.read_csv(file_name, delimiter=';', encoding='utf-8-sig', dtype=str, header=None)
|
||||
print(df.head())
|
||||
return df.values.tolist()
|
||||
|
||||
return data.tolist()
|
||||
# def Load_Data(file_name):
|
||||
# #data = genfromtxt(file_name, delimiter=';', skip_header=1, converters={0: lambda s: str(s)})
|
||||
# #str2date = lambda x: datetime.strptime(x, '%d-%m-%y')
|
||||
# data = genfromtxt(file_name, delimiter=';', dtype=None, skip_header=0, encoding='utf-8-sig')
|
||||
|
||||
# return data.tolist()
|
||||
|
||||
# def Load_Data(file_name):
|
||||
# data = []
|
||||
# with open(file_name, encoding='utf-8-sig') as f:
|
||||
# reader = csv.reader(f, delimiter=';')
|
||||
# for row in reader:
|
||||
# data.append(row)
|
||||
# return data
|
||||
|
||||
def extract_values(text):
|
||||
# Regular expressions to match the required fields
|
||||
@@ -51,21 +76,27 @@ if __name__ == "__main__":
|
||||
|
||||
try:
|
||||
home_directory = os.path.expanduser('~')
|
||||
source_csv = os.path.join(home_directory, "OneDrive", "Dokumente", "SUST", "UmsatzListe_AT493443700000113407_20241212_095142_mod.csv")
|
||||
target_csv = source_csv.replace(".csv", "_out.csv")
|
||||
data = Load_Data(source_csv)
|
||||
source_path = os.path.join(home_directory, "OneDrive", "Dokumente", "SUST", "import_csv", "*.csv")
|
||||
for source_csv in glob.glob(source_path):
|
||||
if '_out.csv' not in source_csv:
|
||||
#source_csv = os.path.join(home_directory, "OneDrive", "Dokumente", "SUST", "import_csv", "UmsatzListe_AT493443700000113407_20250529_091945_mod.csv")
|
||||
target_csv = source_csv.replace(".csv", "_out.csv")
|
||||
data = Load_Data(source_csv)
|
||||
|
||||
tz = timezone('UTC') # Replace with your desired timezone
|
||||
outData = []
|
||||
for i in data:
|
||||
if ('Auftraggeber' in i[1]):
|
||||
# extract key-value pairs Auftraggeber, Verwendungszweck, Zahlungsreferenz, IBAN
|
||||
new_list = extract_values(i[1])
|
||||
tz = timezone('UTC') # Replace with your desired timezone
|
||||
outData = []
|
||||
for i in data:
|
||||
if ('Auftraggeber' in i[1]):
|
||||
# extract key-value pairs Auftraggeber, Verwendungszweck, Zahlungsreferenz, IBAN
|
||||
new_list = extract_values(i[1])
|
||||
|
||||
if len(new_list) > 0:
|
||||
outData.append([i[0], new_list[0].get('Auftraggeber'), new_list[0].get('Zahlungsreferenz'), new_list[0].get('Verwendungszweck'), new_list[0].get('IBAN'), i[2], i[3].replace(',','.'), i[4], i[5]])
|
||||
|
||||
savetxt(target_csv, outData, delimiter=";", encoding='utf-8', header='valuta_date;client;reference;intended;IBAN;entry_date;amount;currency;timestamp', fmt='%s')
|
||||
if len(new_list) > 0:
|
||||
outData.append([i[0], new_list[0].get('Auftraggeber'), new_list[0].get('Zahlungsreferenz'), new_list[0].get('Verwendungszweck'), new_list[0].get('IBAN'), i[2], i[3].replace(',','.'), i[4], i[5]])
|
||||
|
||||
savetxt(target_csv, outData, delimiter=";", encoding='utf-8', header='valuta_date;client;reference;intended;IBAN;entry_date;amount;currency;timestamp', fmt='%s')
|
||||
bak_dir = os.path.join(os.path.dirname(source_csv), "bak")
|
||||
os.makedirs(bak_dir, exist_ok=True)
|
||||
os.rename(source_csv, os.path.join(bak_dir, os.path.basename(source_csv)))
|
||||
|
||||
except Exception as e:
|
||||
print (e)
|
||||
|
||||
Reference in New Issue
Block a user