Get started learning Python with DataCamp's free Intro to Python tutorial. Learn Data Science by completing interactive coding challenges and watching videos by expert instructors. Start Now!
This site is generously supported by DataCamp. DataCamp offers online interactive Python Tutorials for Data Science. Join 11 million other learners and get started learning Python for data science today!
Good news! You can save 25% off your Datacamp annual subscription with the code LEARNPYTHON23ALE25 - Click here to redeem your discount
Parsing av CSV-filer
Vad är CSV?
CSV står för 'Comma Separated Values'. CSV-formatet är det vanligaste import- och exportformatet för databaser och kalkylblad. En CSV-fil är en enkel textfil som innehåller en lista med data. De använder mestadels kommatecknet (,) för att avgränsa data, men ibland används andra tecken, till exempel semikolon eller tabulatorer.
Exempel på CSV-data:
... column 1 name,column 2 name, column 3 name first row data 1,first row data 2,first row data 3 second row data 1,second row data 2,second row data 3 ...
CSV-modul i Python
Medan Python har den inbyggda open()-funktionen för att arbeta med CSV-filer eller andra vanliga textfiler, finns det en dedikerad csv-modul som implementerar klasser för att läsa och skriva data i csv-format, vilket gör arbetet med CSV-filer mycket enklare.
Viktiga funktioner i CSV-modulen
Hur använder man csv-modulen?
först importera csv-modulen i ditt python-program.
writer och reader-funktionerna låter dig redigera, modifiera och transformera data i en CSV-fil.
Hur man läser en CSV-fil:-
För att läsa data från CSV-filer använder vi reader-funktionen för att generera ett reader-objekt.
Till exempel:
Här öppnar vi först CSV-filen i LÄSNINGSMODUS och namnger filobjektet som csvfile. Vi använder context manager för att öppna filen så att vi inte behöver oroa oss för att stänga filen. csv.reader-funktionen tar filobjekt som indata och returnerar ett itererbart objekt. Vi sparar det itererbara objektet som csvreader.
Som vi vet är csvreader ett itererbart objekt och vi kan därför iterera med hjälp av for-loop:
exempel 1:
Ovanstående kod skriver ut alla rader vi läser från csv-fil. Observera att vi öppnar filen med 'r'-läge när den redan finns.
Vad är nästa steg?
csvreader är ett itererbart objekt. Därför returnerar .next()-metoden den aktuella raden och flyttar iteratorn till nästa rad.
exempel 2:
I exempel 1 skulle du se alla rader utskrivna på konsolen tillsammans med rubrik. I exempel 2 läser .next() metoden in rubriken i fields-objektet och flyttar iteratorn till nästa rad och därför skrivs alla rader ut förutom rubriken.
Hur man skriver i en CSV-fil-
För att skriva i en csv-fil tillhandahåller csv-modulen csv.writer-funktionen. För att skriva data öppnar vi först CSV-filen i SKRIVMODUS ('w'). Filobjektet heter csvfile. Vi sparar csv.writer-objektet som csvwriter.
Exempel: #deklarera rubrik fields = ['column1','column2', 'column3']
I ovanstående exempel kommer writerow()-funktionen skriva en enskild rad som är fields-objekt medan writerows()-metoden kommer att skriva hela listan av rader som definierats ovan i CSV-filen.
Låt oss nu ta ett steg längre. Läs innehållet i en csv-fil och skriv till en annan csv-fil.
Exempel:
Här öppnar vi 'newfilename.csv' i läge 'W' som f2 och öppnar 'mycsvfile.csv' i läge 'r' som f1. Vi använder .next(), .reader(), .writer(), .writerow() funktionerna i csv-modulen. Med hjälp av .next() förflyttar vi reader-pekaren och med csvwriter.writerow() skriver vi inkommmande rad en i taget.
DictReader och DictWriter klasser i Python
Nedan finns två viktiga klasser i python för att läsa och skriva csv-filer.
csv.DictWriter klass csv.DictReader klass
DictReader och DictWriter är klasser som finns i Python för att läsa och skriva till CSV. Även om de liknar reader- och writer-funktionerna, använder dessa klasser ordboksobjekt för att läsa och skriva till csv-filer.
DictReader:
Det skapar ett objekt som kartlägger informationen läst till en ordbok vars nycklar ges av parameterfältens parameter. Denna parameter är valfri, men när den inte specificeras i filen blir de första radens data nycklar i ordboken.
Exempel csv(info.csv)
..... firstname, lastname foo, bar foo1, bar1 .....
Exempel:
DictWriter:
csv.DictWriter-klassen fungerar som en vanlig writer men mappar Python-ordböcker till CSV-rader. Fieldnames-parametern är en sekvens av nycklar som identifierar ordningen i vilken värden i ordboken som överförs till writerow()-metoden skrivs till CSV-filen. Klassen definieras som csv.DictWriter(csvfile, fieldnames, restval='', extrasaction='raise', dialect='excel', args, *kwds)
Exempel:
Övning
I denna övning kommer du att arbeta med CSV-data. Din uppgift är att skapa ett Python-program som läser data från en CSV-fil och skriver det till en annan CSV-fil, säkerställ att endast rader där värdet i den första kolumnen är större än 50 inkluderas i utdatafilen.
This site is generously supported by DataCamp. DataCamp offers online interactive Python Tutorials for Data Science. Join over a million other learners and get started learning Python for data science today!
