Python

Kako ravnati z datotekami CSV v Pythonu

Kako ravnati z datotekami CSV v Pythonu
Ta članek bo zajemal vadnico o ravnanju z datotekami "csv" s pomočjo Pythona. Izraz "csv" pomeni "vrednosti, ločene z vejico", kjer vsaka vrstica ali vrstica vsebuje besedilne vrednosti, ločene z vejicami. V nekaterih primerih se za ločevanje vrednosti uporablja tudi »podpičje« namesto »vejica«. Vendar to nima velike razlike v pravilih za oblikovanje datotek in logika ravnanja z obema vrstama ločil ostaja enaka.

Datoteka CSV se najpogosteje uporablja za vzdrževanje baz podatkov in preglednic. Prva vrstica v datoteki CSV se najpogosteje uporablja za določanje polj stolpcev, ostale vrstice pa se štejejo za vrstice. Ta struktura uporabnikom omogoča predstavitev tabelarnih podatkov z uporabo datotek CSV. Datoteke CSV lahko urejate v katerem koli urejevalniku besedil. Vendar pa aplikacije, kot je LibreOffice Calc, ponujajo napredna orodja za urejanje, razvrščanje in filtriranje.

Branje podatkov iz datotek CSV z uporabo Pythona

Modul CSV v Pythonu omogoča branje, pisanje in upravljanje vseh podatkov, shranjenih v datotekah CSV. Za branje datoteke CSV boste morali uporabiti metodo »čitalec« iz Pythonovega modula »csv«, ki je vključen v standardno knjižnico Pythona.

Upoštevajte, da imate datoteko CSV, ki vsebuje naslednje podatke:

Mango, banana, jabolko, oranžna
50,70,30,90

Prva vrstica datoteke določa vsako kategorijo stolpcev, v tem primeru ime sadja. V drugi vrstici so shranjene vrednosti pod vsakim stolpcem (zaloga v roki). Vse te vrednosti so ločene z vejico. Če bi to datoteko odprli v aplikaciji za preglednice, kot je LibreOffice Calc, bi bila videti tako:

Zdaj, da preberemo vrednosti iz »sadja.csv "z uporabo Pythonovega modula" csv ", boste morali uporabiti metodo" čitalec "v naslednji obliki:

uvoz csv
z odprtimi ("sadje.csv ") kot datoteka:
data_reader = csv.bralnik (datoteka)
za vrstico v data_reader:
tiskanje (vrstica)

Prva vrstica v zgornjem vzorcu uvozi modul “csv”. Nato se izjava »z odprtim« uporablja za varno odpiranje datoteke, shranjene na trdem disku (»sadje.csv "v tem primeru). Nov objekt "data_reader" se ustvari s klicanjem metode "čitalec" iz modula "csv". Ta metoda »bralca« je kot obvezen argument ime datoteke, zato je sklic na »sadje.csv «. Nato se zažene stavek zanke za, da se natisne vsaka vrstica iz sadja.csv ”. Po zagonu zgoraj omenjenega vzorca kode bi morali dobiti naslednji izhod:

['50', '70', '30', '90']

Če želite izhodu dodeliti številke vrstic, lahko uporabite funkcijo »enumerate«, ki vsakemu elementu v iterabilu dodeli številko (začenši z 0, razen če je spremenjena).

uvoz csv
z odprtimi ("sadje.csv ") kot datoteka:
data_reader = csv.bralnik (datoteka)
za indeks, vrstica v enumerate (data_reader):
tisk (kazalo, vrstica)

Spremenljivka "indeks" vodi štetje za vsak element. Po zagonu zgoraj omenjenega vzorca kode bi morali dobiti naslednji izhod:

0 ['Mango', 'Banana', 'Apple', 'Orange']
1 ['50', '70', '30', '90']

Ker prva vrstica v datoteki “csv” običajno vsebuje naslove stolpcev, lahko s funkcijo “enumerate” izvlečete te naslove:

uvoz csv
z odprtimi ("sadje.csv ") kot datoteka:
data_reader = csv.bralnik (datoteka)
za indeks, vrstica v enumerate (data_reader):
če je indeks == 0:
naslovi = vrstica
tisk (naslovi)

Blok "če" v zgornjem stavku preveri, ali je indeks enak nič (prva vrstica v "sadje.csv ”). Če je odgovor pritrdilen, je vrednost spremenljivke "line" dodeljena novi spremenljivki "headings". Potem, ko zaženete zgornji vzorec kode, bi morali dobiti naslednji izhod:

['Mango', 'Banana', 'Apple', 'Orange']

Upoštevajte, da lahko med klicanjem »csv.bralnik «z uporabo neobveznega argumenta» ločilo «v naslednji obliki:

uvoz csv
z odprtimi ("sadje.csv ") kot datoteka:
data_reader = csv.bralnik (datoteka, ločilo = ";")
za vrstico v data_reader:
tisk (vrstica)

Ker je v datoteki csv vsak stolpec povezan z vrednostmi v vrstici, boste morda želeli med branjem podatkov iz datoteke "csv" ustvariti objekt "slovarja" Pythona. Za to morate uporabiti metodo “DictReader”, kot je prikazano v spodnji kodi:

uvoz csv
z odprtimi ("sadje.csv ") kot datoteka:
data_reader = csv.DictReader (datoteka)
za vrstico v data_reader:
tiskanje (vrstica)

Po zagonu zgoraj omenjenega vzorca kode bi morali dobiti naslednji izhod:

'Mango': '50', 'Banana': '70', 'Apple': '30', 'Orange': '90'

Zdaj imate na voljo slovarski objekt, ki posamezne stolpce poveže z njihovimi ustreznimi vrednostmi v vrsticah. To deluje dobro, če imate samo eno vrstico. Predpostavimo, da »sadje.csv "datoteka zdaj vključuje dodatno vrstico, ki določa, koliko dni bo trajalo, da bo zaloga sadja propadla.

Mango, banana, jabolko, oranžna
50,70,30,90
3,1,6,4

Če imate več vrstic, bo zagon istega vzorčnega vzorca zgoraj dal različne rezultate.

'Mango': '50', 'Banana': '70', 'Apple': '30', 'Orange': '90'
'Mango': '3', 'Banana': '1', 'Apple': '6', 'Orange': '4'

To morda ni idealno, saj boste morda želeli vse vrednosti, ki se nanašajo na en stolpec, preslikati v en par ključ-vrednost v slovarju Python. Namesto tega poskusite s tem vzorcem kode:

uvoz csv
z odprtimi ("sadje.csv ") kot datoteka:
data_reader = csv.DictReader (datoteka)
data_dict =
za vrstico v data_reader:
za ključ, vrednost v vrstici.postavke ():
data_dict.setdefault (tipka, [])
data_dict [ključ].dodaj (vrednost)
natisni (data_dict)

Po zagonu zgoraj omenjenega vzorca kode bi morali dobiti naslednji izhod:

'Mango': ['50', '3'], 'Banana': ['70', '1'], 'Apple': ['30', '6'], 'Orange': ['90 ',' 4 ']

Zanka »for« se uporablja na vsakem elementu predmeta »DictReader« za zanko čez pare ključ / vrednost. Pred tem je definirana nova spremenljivka slovarja Python "data_dict". Shranila bo končne preslikave podatkov. V drugem bloku zanke se uporablja metoda "setdefault" slovarja Python. Ta metoda slovarskemu ključu dodeli vrednost. Če par ključ-vrednost ne obstaja, se iz podanih argumentov ustvari nov. V tem primeru bo ključu dodeljen nov prazen seznam, če še ne obstaja. Nazadnje je "vrednost" dodana njenemu ustreznemu ključu v končnem objektu "data_dict".

Zapisovanje podatkov v datoteko CSV

Če želite zapisovati podatke v datoteko "csv", boste morali uporabiti metodo "zapisovalnik" iz modula "csv". Spodnji primer bo dodal novo vrstico k obstoječim »sadjem.csv ”.

uvoz csv
z odprtimi ("sadje.csv "," a ") kot datoteka:
data_writer = csv.zapisovalnik (datoteka)
data_writer.pisanje ([3,1,6,4])

Prvi stavek odpre datoteko v načinu »dodaj«, označen z argumentom »a«. Nato se pokliče metoda »pisatelj« in sklic na »sadje.csv ”ji se posreduje kot argument. Metoda »writerow« zapiše ali doda novo vrstico v datoteko.

Če želite pretvoriti slovar Python v datotečno strukturo "csv" in izhod shraniti v datoteko "csv", poskusite to kodo:

uvoz csv
z odprtimi ("sadje.csv "," w ") kot datoteka:
naslovi = ["Mango", "Banana", "Jabolko", "Oranžna"]
data_writer = csv.DictWriter (datoteka, imena polj = naslovi)
data_writer.napisno glavo ()
data_writer.writerow ("Mango": 50, "Banana": 70, "Apple": 30, "Orange": 90)
data_writer.writerow ("Mango": 3, "Banana": 1, "Apple": 6, "Orange": 4)

Po odprtju praznega “sadja.csv "z uporabo stavka" z odprtim "je definirana nova spremenljivka" headings ", ki vsebuje naslove stolpcev. Nov objekt "data_writer" se ustvari s klicanjem metode "DictWriter" in s sklicevanjem na "sadje".csv «in argument» imena polj «. V naslednji vrstici se naslovi stolpcev v datoteko zapišejo z metodo "headhead". Zadnja dva stavka dodata nove vrstice v ustrezne naslove, ustvarjene v prejšnjem koraku.

Zaključek

Datoteke CSV omogočajo čudovit način zapisovanja podatkov v tabelarni obliki. Pythonov vgrajeni modul "csv" olajša obdelavo podatkov, ki so na voljo v datotekah "csv", in na njih uvede nadaljnjo logiko.

Kako spremeniti levi in ​​desni gumb miške na računalniku z operacijskim sistemom Windows 10
Povsem normalno je, da so vse naprave računalniške miške ergonomsko zasnovane za desničarje. Na voljo pa so miške, ki so posebej zasnovane za levičarj...
Posnemajte klike miške tako, da v Windows 10 lebdite z miško Clickless Mouse
Uporaba miške ali tipkovnice v napačni drži čezmerne uporabe lahko povzroči veliko zdravstvenih težav, vključno s sevom, sindromom karpalnega kanala i...
S temi brezplačnimi orodji dodajte gibe miške v sistem Windows 10
V zadnjih letih so se računalniki in operacijski sistemi močno razvili. Včasih so morali uporabniki uporabljati ukaze za krmarjenje po upraviteljih da...