Kas yra CSV failas?
CSV failas yra paprasto teksto failo tipas, kuris naudoja specialų struktūrizavimą tvarkydamas lentelės duomenis. CSV yra įprastas keitimosi duomenimis formatas, nes jis yra kompaktiškas, paprastas ir bendras. Daugelis internetinių paslaugų leidžia vartotojams eksportuoti lentelių duomenis iš svetainės į CSV failą. CSV failai bus atidaryti į „Excel“ ir beveik visose duomenų bazėse yra įrankis, leidžiantis importuoti iš CSV failo. Standartinį formatą apibrėžia eilučių ir stulpelių duomenys. Be to, kiekviena eilutė nutraukiama nauja eilute, kad prasidėtų kita eilutė. Taip pat eilutėje kiekvienas stulpelis yra atskirtas kableliu.
Šioje pamokoje sužinosite:
- Kas yra CSV failas?
- CSV pavyzdinis failas.
- „Python CSV“ modulis
- CSV modulio funkcijos
- Skaitykite CSV failus
- Skaitymas kaip žodynas
- Rašymas į CSV failus
- CSV failų su pandomis skaitymas
- Rašymas į CSV failus su pandomis
CSV pavyzdinis failas.
Duomenys lentelių pavidalu dar vadinami CSV (kableliais atskirtos vertės) - pažodžiui „kableliais atskirtos vertės“. Tai yra teksto formatas, skirtas pateikti lentelių duomenis. Kiekviena failo eilutė yra viena lentelės eilutė. Atskirų stulpelių vertės yra atskirtos skiriamuoju simboliu - kableliu (,), kabliataškiu (;) ar kitu simboliu. „Python“ gali lengvai perskaityti ir apdoroti CSV.
Apsvarstykite šį Tabe
Lentelės duomenys
Programavimo kalba | Suprojektuotas | Pasirodė | Pratęsimas |
„Python“ | Guido van Rossumas | 1991 m | .py |
„Java“ | Jamesas Goslingas | 1995 m | .java |
C ++ | Bjarne Stroustrup | 1983 m | .cpp |
Šią lentelę galite pavaizduoti csv formoje, kaip nurodyta toliau.
CSV duomenys
Programavimo kalba, sukurta, pasirodė, plėtinys
Python, Guido van Rossum, 1991, .py
Java, Jamesas Goslingas, 1995, .java
C ++, Bjarne Stroustrup, 1983, .pp
Kaip matote, kiekviena eilutė yra nauja eilutė, o kiekvienas stulpelis yra atskirtas kableliu. Tai pavyzdys, kaip atrodo CSV failas.
Atsisiųskite CSV duomenis
„Python CSV“ modulis
„Python“ pateikia CSV modulį CSV failams tvarkyti. Norėdami skaityti / rašyti duomenis, turite perskaityti CSV eilutes. Norėdami gauti duomenis iš nurodytų stulpelių, turite naudoti padalijimo metodą.
CSV modulio funkcijos
CSV modulio dokumentacijoje galite rasti šias funkcijas:
- csv.field_size_limit - grąžinti maksimalų lauko dydį
- csv.get_dialect - gaukite tarmę, susietą su vardu
- csv.list_dialects - rodyti visas registruotas tarmes
- csv.reader - skaitykite duomenis iš csv failo
- csv.register_dialect - susieti tarmę su vardu
- csv.writer - įrašykite duomenis į csv failą
- csv.unregister_dialect - ištrinti tarmę, susietą su dialektų registro pavadinimu
- csv.QUOTE_ALL - Cituoti viską, neatsižvelgiant į tipą.
- csv.QUOTE_MINIMAL - Pasiūlymų laukai su specialiaisiais simboliais
- csv.QUOTE_NONNUMERIC - Cituoti visus laukus, kurie nėra skaičių reikšmė
- csv.QUOTE_NONE - nieko necituokite išvestyje
Šioje pamokoje daugiausia dėmesio skirsime tik skaitytojo ir rašytojo funkcijoms, leidžiančioms redaguoti, modifikuoti ir manipuliuoti CSV failo duomenimis.
Kaip skaityti CSV failą
Norėdami skaityti duomenis iš CSV failų, skaitytojo objektui sugeneruoti turite naudoti skaitytuvo funkciją.
Skaitytojo funkcija sukurta kiekvienai failo eilutei paimti ir sudaryti visų stulpelių sąrašą. Tada turite pasirinkti stulpelį, kuriam norite kintamųjų duomenų.
Tai skamba daug įmantriau nei yra. Pažvelkime į šį pavyzdį ir sužinosime, kad dirbti su csv failu nėra taip sunku.
#import necessary modulesimport csvwith open('X:\data.csv','rt')as f:data = csv.reader(f)for row in data:print(row)
Kai vykdysite aukščiau pateiktą programą, išvestis bus:
['Programming language; Designed by; Appeared; Extension']['Python; Guido van Rossum; 1991; .py']['Java; James Gosling; 1995; .java']['C++; Bjarne Stroustrup;1983;.cpp']
Kaip skaityti CSV kaip žodyną
Taip pat galite naudoti „DictReader“ skaitydami CSV failus. Rezultatai aiškinami kaip žodynas, kuriame antraštės eilutė yra raktas, o kitos eilutės yra reikšmės.
Apsvarstykite šį kodą
#import necessary modulesimport csvreader = csv.DictReader(open("file2.csv"))for raw in reader:print(raw)
Šio kodo rezultatas:
OrderedDict([('Programming language', 'Python'), ('Designed by', 'Guido van Rossum'), (' Appeared', ' 1991'), (' Extension', ' .py')])OrderedDict([('Programming language', 'Java'), ('Designed by', 'James Gosling'), (' Appeared', ' 1995'), (' Extension', ' .java')])OrderedDict([('Programming language', 'C++'), ('Designed by', ' Bjarne Stroustrup'), (' Appeared', ' 1985'), (' Extension', ' .cpp')])
Šis būdas skaityti duomenis iš CSV failo yra daug lengvesnis nei ankstesnis metodas. Tačiau tai nėra geriausias būdas skaityti duomenis.
Kaip rašyti CSV failą
Jei turite duomenų rinkinį, kurį norite išsaugoti CSV faile, turite naudoti rašytojo () funkciją. Norėdami pakartoti duomenis per eilutes (eilutes), turite naudoti rašytojo () funkciją.
Apsvarstykite šį pavyzdį. Duomenis įrašome į failą „writeData.csv“, kur skiriamasis ženklas yra apostrofas.
#import necessary modulesimport csvwith open('X:\writeData.csv', mode='w') as file:writer = csv.writer(file, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL)#way to write to csv filewriter.writerow(['Programming language', 'Designed by', 'Appeared', 'Extension'])writer.writerow(['Python', 'Guido van Rossum', '1991', '.py'])writer.writerow(['Java', 'James Gosling', '1995', '.java'])writer.writerow(['C++', 'Bjarne Stroustrup', '1985', '.cpp'])
Rezultatas csv faile yra:
Programming language, Designed by, Appeared, ExtensionPython, Guido van Rossum, 1991, .pyJava, James Gosling, 1995, .javaC++, Bjarne Stroustrup,1983,.cpp
CSV failų su pandomis skaitymas
„Pandas“ yra atvirojo kodo biblioteka, leidžianti atlikti duomenų apdorojimą „Python“. Pandos suteikia paprastą būdą kurti, tvarkyti ir ištrinti duomenis.
Turite įdiegti pandų biblioteką su komanda pip install pandas
. „Windows“ vykdysite šią komandą komandų eilutėje, o „Linux“ - terminale.
CSV perskaitymas į „pandas DataFrame“ yra labai greitas ir paprastas:
#import necessary modulesimport pandasresult = pandas.read_csv('X:\data.csv')print(result)
Rezultatas:
Programming language, Designed by, Appeared, Extension0 Python, Guido van Rossum, 1991, .py1 Java, James Gosling, 1995, .java2 C++, Bjarne Stroustrup,1983,.cpp
Labai naudinga biblioteka. Vos per tris kodo eilutes pasieksite tą patį rezultatą kaip anksčiau. Pandos žino, kad pirmoje CSV eilutėje buvo stulpelių pavadinimai, ir ji juos naudos automatiškai.
Rašymas į CSV failus su pandomis
Rašyti į CSV failą naudojant „Pandas“ yra taip pat lengva, kaip skaityti. Čia galite tuo įtikinti. Pirmiausia turite sukurti „DataFrame“, remdamiesi šiuo kodu.
from pandas import DataFrameC = {'Programming language': ['Python','Java', 'C++'],'Designed by': ['Guido van Rossum', 'James Gosling', 'Bjarne Stroustrup'],'Appeared': ['1991', '1995', '1985'],'Extension': ['.py', '.java', '.cpp'],}df = DataFrame(C, columns= ['Programming language', 'Designed by', 'Appeared', 'Extension'])export_csv = df.to_csv (r'X:\pandaresult.csv', index = None, header=True) # here you have to write path, where result file will be storedprint (df)
Čia yra išvestis
Programming language, Designed by, Appeared, Extension0 Python, Guido van Rossum, 1991, .py1 Java, James Gosling, 1995, .java2 C++, Bjarne Stroustrup,1983,.cpp
CSV failas yra sukurtas nurodytoje vietoje.
Išvada
Taigi, dabar jūs žinote, kaip naudoti metodą „csv“, taip pat skaityti ir rašyti duomenis CSV formatu. CSV failai yra plačiai naudojami programinės įrangos programose, nes juos lengva skaityti ir valdyti, o dėl mažo dydžio juos palyginti greitai galima apdoroti ir perduoti.
Csv modulis teikia įvairias funkcijas ir klases, kurios leidžia lengvai skaityti ir rašyti. Galite peržiūrėti oficialią „Python“ dokumentaciją ir rasti keletą įdomesnių patarimų ir modulių. CSV yra geriausias būdas išsaugoti, peržiūrėti ir siųsti duomenis. Tiesą sakant, tai nėra taip sunku išmokti, kaip atrodo pradžioje. Bet turėdami šiek tiek praktikos, jūs tai išmoksite.
„Pandas“ yra puiki alternatyva skaityti CSV failus.
Be to, yra kitų būdų analizuoti tekstinius failus su bibliotekomis, tokiomis kaip ANTLR, PLY ir PlyPlus. Jie visi gali apdoroti sunkų analizavimą, o jei paprastas manipuliavimas eilutėmis neveikia, yra reguliarūs posakiai, kuriuos galite naudoti.