Ixazululiwe: i-csv logger

Isibuyekezo sokugcina: 09/25/2023

Isingeniso

Emkhakheni wohlelo nokuhlaziywa kwedatha, iloga ye-CSV (Amanani Ahlukaniswe Ngokhefana) idlala indima ebalulekile. Le fomethi yefayela elula kodwa enamandla isiza ukushintshaniswa kwedatha phakathi kwezinhlelo zokusebenza ezahlukene. Ku-Python, ukugawulwa kwemithi kuvumela indlela ehlelekile neguquguqukayo yokukhipha kungobo yomlando, amaphutha, ulwazi, nokugeleza kohlelo. Lesi sihloko sizocubungula inkinga ehlobene ne-CSV logger futhi yethule isisombululo se-Python esibanzi, sicacise yonke ingcosana yekhodi esetshenziswa kule nqubo.

Ukuqonda Inkinga

  • Ihiccup eyinhloko onjiniyela ababhekana nayo ngokuloga kwe-CSV indlela yokurekhoda idatha ngempumelelo kukho konke ukusebenza kohlelo. Ngaphandle kwesiloga esifanelekile se-CSV, kunzima ukunakekela, ukuhlela nokuhlanza idatha eqoqiwe. Le datha ezuziwe ingase isetshenziselwe izinjongo zokuhlaziya nokulungisa iphutha.
  • Enye inkinga evamile ukwenzeka kokulahleka kwamalogi lapho uhlelo lokusebenza luphahlazeka kungazelelwe. Isiloga se-CSV esiqinile kufanele sikwazi ukubuyisela noma ukulondoloza amalogi, ngisho noma kwenzeka kuba nesiphazamiso sohlelo lokusebenza.

I-Python kanye ne-CSV Logging

I-Python, njengoba ilulimi oluguquguqukayo, inikeza ukwesekwa okubanzi kokuloba kwe-CSV kusetshenziswa imitapo yolwazi echazwe ngaphambilini njenge- logging kanye nomtapo wolwazi we-csv.

Isixazululo: Umhlahlandlela wesinyathelo ngesinyathelo

Ukuze sinqobe izinkinga ezishiwo ngenhla, sizodala iloga ye-python CSV erekhoda ngempumelelo amalogi kufayela le-CSV. Ikhodi yePython elandelayo ikhombisa ukuthi lokhu kungafinyelelwa kanjani.

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.'])

Ngokusebenzisa isibonelo, simane siqale i-logger bese sisebenzisa umsebenzi we -log_to_csv() ukuze sibhalele ifayela le-CSV. Ukufakwa ngakunye kwe-log kuzoba kumugqa omusha, okugcina uhlobo lochungechunge lwesikhathi lwama-log.

Ukuchaza Ikhodi

Esinyathelweni sokuqala sombhalo wethu, singenisa imitapo yolwazi edingekayo: ukugawulwa kwemithi ne-csv, ehlinzekwa yiPython. Ngelabhulali yokungena, silungiselela imininingwane yokungena eyisisekelo njengezinga lokungena.

Okulandelayo, sakha i-logger yethu futhi siyilungiselele ngesibambi esibhala izingodo efayeleni. Lesi sibambi sithola imilayezo yaso yelogi ifomethwe ku-CSV, ilungele ukubhalwa.

Bese sichaza umsebenzi othi log_to_csv() ophatha ukubhala amalogi kufayela le-CSV. Ngaphakathi kwalo msebenzi, kudalwa umbhali we-CSV, ovula ifayela kumodi yokwengeza ukuze amalogi angabhali ngaphezulu komunye nomunye. Uhlu lolwazi lokufaka ekugcineni lubhalwa njengomugqa kufayela le-CSV.

Python Libraries kanye nemisebenzi

I-Python inikeza umtapo wolwazi we-csv onemisebenzi echazwe ngaphambilini yokufunda nokubhala kumafayela e-CSV. Umsebenzi we -csv.writer usivumela ukuthi sibhale idatha kufayela le-CSV kalula. Siphinde sisebenzise umtapo wolwazi we-Python wokubhala ukuze sikhiqize amalogi adinga ukubhalwa kufayela le-CSV. Womabili lawa malayibrari angamathuluzi anamandla kubathuthukisi be-Python.

UPeter Chapman, isazi sezenkolo esidumile, wake wathi, “Umbala ungamandla athonya umphefumulo ngokuqondile.” Kungashiwo okufanayo mayelana nezinhlelo: ubuhle bePython buthonya ngqo ukusebenza kwesixazululo sakho. Ngokuqonda okuhle nokusebenzisa kahle imitapo yolwazi nemisebenzi yePython, umuntu angakha ngempumelelo izixazululo eziqinile nezithembekile.

Okuthunyelwe okuhlobene: