z230
This commit is contained in:
@@ -2,46 +2,46 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
"""
|
||||
Diagnostický test: načti Fio CSV a ověř parsování datumu.
|
||||
Nenačítá se do MySQL – pouze vypíše výsledek.
|
||||
Quick, verified dump of all Fio transactions from MySQL → Excel.
|
||||
Column names are exactly as in DB.
|
||||
"""
|
||||
|
||||
import csv
|
||||
from datetime import datetime
|
||||
import pandas as pd
|
||||
import pymysql
|
||||
from pymysql.cursors import DictCursor
|
||||
from pathlib import Path
|
||||
from datetime import datetime
|
||||
|
||||
# ✅ Tvoje cesta k souboru
|
||||
CSV_PATH = Path(r"u:\Dropbox\!!!Days\Downloads Z230\Vyhledane pohyby (1).csv")
|
||||
# ======== CONFIG ========
|
||||
MYSQL_CONFIG = {
|
||||
"host": "192.168.1.76",
|
||||
"port": 3307,
|
||||
"user": "root",
|
||||
"password": "Vlado9674+",
|
||||
"database": "fio",
|
||||
"charset": "utf8mb4",
|
||||
|
||||
}
|
||||
|
||||
def parse_czech_date(s: str):
|
||||
"""Očistí řetězec a zkusí dd.mm.yyyy."""
|
||||
if not s:
|
||||
return None
|
||||
s = s.strip().replace("\u00A0", "").replace("\ufeff", "")
|
||||
try:
|
||||
return datetime.strptime(s, "%d.%m.%Y").date()
|
||||
except Exception:
|
||||
return None
|
||||
EXPORT_PATH = Path(r"u:\Dropbox\!!!Days\Downloads Z230") / f"Fio_ALL_{datetime.now():%Y-%m-%d_%H-%M-%S}.xlsx"
|
||||
|
||||
# ======== MAIN ========
|
||||
def dump_all_transactions():
|
||||
with pymysql.connect(**MYSQL_CONFIG) as conn:
|
||||
sql = """
|
||||
SELECT
|
||||
*
|
||||
FROM transactions
|
||||
ORDER BY datum DESC;
|
||||
"""
|
||||
df = pd.read_sql(sql, conn)
|
||||
|
||||
def main():
|
||||
with open(CSV_PATH, "r", encoding="utf-8-sig", newline="") as f:
|
||||
reader = csv.DictReader(f, delimiter=";", quotechar='"')
|
||||
rows = list(reader)
|
||||
print(f"✅ Načteno {len(df)} transakcí z MySQL.")
|
||||
|
||||
print(f"Načteno {len(rows)} řádků.\n")
|
||||
print("Ukázka prvních 10 řádků s hodnotou Datum:\n")
|
||||
|
||||
for i, row in enumerate(rows[:10], start=1):
|
||||
raw = row.get("Datum")
|
||||
parsed = parse_czech_date(raw)
|
||||
print(f"{i:02d}. raw={repr(raw)} -> parsed={parsed}")
|
||||
|
||||
input("\n🔸 Stiskni Enter pro pokračování nebo ukončení... ")
|
||||
# Save to Excel
|
||||
df.to_excel(EXPORT_PATH, index=False)
|
||||
print(f"📊 Excel export hotov:\n{EXPORT_PATH}")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
if not CSV_PATH.exists():
|
||||
raise SystemExit(f"❌ Soubor {CSV_PATH} nenalezen.")
|
||||
main()
|
||||
dump_all_transactions()
|
||||
|
||||
Reference in New Issue
Block a user