54 lines
1.7 KiB
Python

import os
import csv
from datetime import datetime
# Cesty k souborům
source_file = "finance.csv"
archive_folder = "2024"
current_year = datetime.now().year # Aktuální rok
# Vytvoření složky pro archiv
if not os.path.exists(archive_folder):
os.makedirs(archive_folder)
# Načtení dat
rows_current_year = []
rows_by_year = {}
with open(source_file, newline='', encoding='utf-8') as csvfile:
reader = csv.reader(csvfile)
header = next(reader) # Načtení hlavičky CSV
for row in reader:
if len(row) < 5:
continue # Přeskočení nekompletních řádků
try:
year = datetime.strptime(row[0], "%Y-%m-%d").year # Datum v prvním sloupci
except ValueError:
continue # Neplatné datum
if year == current_year:
rows_current_year.append(row) # Necháme v hlavním souboru
else:
if year not in rows_by_year:
rows_by_year[year] = []
rows_by_year[year].append(row)
# Uložení archivovaných souborů
for year, rows in rows_by_year.items():
file_path = os.path.join(archive_folder, f"finance_{year}.csv") # Správný název
with open(file_path, "w", newline='', encoding='utf-8') as csvfile:
writer = csv.writer(csvfile)
writer.writerow(header) # Zápis hlavičky
writer.writerows(rows)
# Uložení zpět do finance.csv (pouze aktuální rok)
with open(source_file, "w", newline='', encoding='utf-8') as csvfile:
writer = csv.writer(csvfile)
writer.writerow(header)
writer.writerows(rows_current_year)
print(f"Archivace dokončena. Staré záznamy přesunuty do {archive_folder}/finance_YYYY.csv.")
print(f"Finance.csv nyní obsahuje pouze data z roku {current_year}.")