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}.")