Riješeno: csv logger

Zadnje ažuriranje: 09/25/2023

Uvod

U području programiranja i analize podataka, CSV (Comma Separated Values) zapisivač ima neprocjenjivu ulogu. Ovaj jednostavan, ali moćan format datoteke olakšava razmjenu podataka između različitih aplikacija. U Pythonu, bilježenje omogućuje strukturiran i dinamičan pristup arhiviranju izlaza, pogrešaka, informacija i tijeka programa. Ovaj će se članak baviti problemom koji se odnosi na CSV logger i predstaviti sveobuhvatno Python rješenje, pojašnjavajući svaki djelić koda koji se koristi u procesu.

Razumijevanje problema

  • Primarni problem s kojim se programeri suočavaju s CSV zapisom je kako učinkovito bilježiti podatke tijekom izvođenja programa. Bez odgovarajućeg CSV loggera teško je održavati, sređivati ​​i čistiti prikupljene podatke. Ovi prikupljeni podaci kasnije se mogu koristiti za analizu i otklanjanje pogrešaka.
  • Drugi uobičajeni problem je pojava gubitka zapisa kada se aplikacija neočekivano sruši. Robustan CSV zapisnik trebao bi moći oporaviti ili sačuvati zapisnike, čak i u slučaju pada aplikacije.

Python i CSV bilježenje

Budući da je Python svestran jezik, pruža opsežnu podršku za CSV bilježenje korištenjem unaprijed definiranih biblioteka poput prijave i csv knjižnica.

Rješenje: vodič korak po korak

Kako bismo prevladali gore navedene probleme, izradit ćemo Python CSV zapisnik koji učinkovito bilježi zapisnike u CSV datoteku. Sljedeći Python kod pokazuje kako se to može postići.

import logging
import csv

logging.basicConfig(level=logging.INFO)
logger = logging.getLogger('CSV Logger')

handler = logging.FileHandler('file.log')
handler.setLevel(logging.INFO)

formatter = logging.Formatter('%(message)s')
handler.setFormatter(formatter)

logger.addHandler(handler)

def log_to_csv(info):
    with open('file.csv', 'a', newline='') as file:
        writer = csv.writer(file)
        writer.writerow(info)

# example usage
logger.info("Starting to write log.")
log_to_csv(['INFO', 'Starting to write log.'])
logger.info("Log has been written.")
log_to_csv(['INFO', 'Log has been written.'])

Uz primjer korištenja, jednostavno pokrećemo zapisivač i zatim koristimo log_to_csv() funkciju za pisanje u CSV datoteku. Svaki unos dnevnika bit će u novom retku, čuvajući prirodu vremenskih nizova dnevnika.

Objašnjavajući Kodeks

U prvom koraku naše skripte uvozimo potrebne biblioteke: logging i csv, koje isporučuje Python. Preko knjižnice zapisivanja konfiguriramo osnovne detalje zapisivanja kao što je razina zapisivanja.

Zatim stvaramo naš logger i konfiguriramo ga s rukovateljem koji zapisuje zapisnike u datoteku. Ovaj rukovatelj dobiva svoje poruke dnevnika formatirane za CSV, spremne za pisanje.

Zatim definiramo funkciju log_to_csv() koji upravlja pisanjem dnevnika u CSV datoteku. Unutar ove funkcije stvara se CSV program za pisanje, otvarajući datoteku u načinu dodavanja tako da se zapisnici međusobno ne prepisuju. Popis ulaznih informacija na kraju se zapisuje kao redak u CSV datoteci.

Python biblioteke i funkcije

Python pruža csv biblioteka koja ima unaprijed definirane funkcije za čitanje i pisanje u CSV datoteke. The csv.pisac funkcija nam omogućuje jednostavno pisanje podataka u CSV datoteku. Također koristimo Python prijave knjižnica za generiranje zapisa koji se trebaju zapisati u CSV datoteku. Obje ove biblioteke moćni su alati za Python programere.

Peter Chapman, poznati teoretičar boja, jednom je rekao: "Boja je moć koja izravno utječe na dušu." Isto se može reći i za programiranje: elegancija Pythona izravno utječe na učinkovitost vašeg rješenja. S dobrim razumijevanjem i učinkovitim korištenjem Pythonovih biblioteka i funkcija, može se učinkovito stvoriti rješenja koja su robusna i pouzdana.

Povezani postovi: